我有一个包含两列的表
1.克兰尼
2.活跃
我的问题是,如果该值已经在Clanid列中并且该值的活动值为1,则不希望将Clanid列中的任何值插入到该表中。
例如
宗族活跃
11个
2 1个
30个
现在不可能插入Clanid=1和Active=1的记录,但是我可以插入Clanid=3和Active=1,因为这个记录不存在。

最佳答案

试试这个:

delimiter //
create trigger unique_clanid
before insert on mytable
for each row
begin
  if new.active and exists (
    select * from mytable
    where clanid = new.clanid
    and active) then
    signal sqlstate '02000' set MESSAGE_TEXT = 'Duplicate ClanID';
  end if;
end//
delimiter ;

09-25 19:26