PHP mysql 条件唯一约束?
PHP mysql conditional unique constraint?
如何让一个列只包含 x 个类似的字符串条目?
示例:
------------
| room_type|
|----------|
| premium |
| premium |
| premium |
| premium |
| premium |
如果有不同类型的条目,它也只会接受 x 数量的条目。
这不能用约束来完成。您可以为此编写 before
触发器。
插入触发器:
delimiter $$
create trigger my_insert_trigger before insert on my_table
for each row
begin
if (select count(*) from my_table where room_type = new.room_type) > 5 then
signal sqlstate '45000';
end if;
end;
$$
delimiter ;
更新触发器:
delimiter $$
create trigger my_update_trigger before update on my_table
for each row
begin
if (select count(*) from my_table where room_type = new.room_type) > 5 then
signal sqlstate '45000';
end if;
end;
$$
delimiter ;
触发器引发错误:
Error: ER_SIGNAL_EXCEPTION: Unhandled user-defined exception condition
如何让一个列只包含 x 个类似的字符串条目?
示例:
------------
| room_type|
|----------|
| premium |
| premium |
| premium |
| premium |
| premium |
如果有不同类型的条目,它也只会接受 x 数量的条目。
这不能用约束来完成。您可以为此编写 before
触发器。
插入触发器:
delimiter $$
create trigger my_insert_trigger before insert on my_table
for each row
begin
if (select count(*) from my_table where room_type = new.room_type) > 5 then
signal sqlstate '45000';
end if;
end;
$$
delimiter ;
更新触发器:
delimiter $$
create trigger my_update_trigger before update on my_table
for each row
begin
if (select count(*) from my_table where room_type = new.room_type) > 5 then
signal sqlstate '45000';
end if;
end;
$$
delimiter ;
触发器引发错误:
Error: ER_SIGNAL_EXCEPTION: Unhandled user-defined exception condition