Trước mysql 5.5. không thể dừng việc chèn vào bên trong một bộ kích hoạt. Ở đó, nơi có một số cách làm việc xấu xí nhưng không có gì tôi muốn giới thiệu. Kể từ 5.5, bạn có thể sử dụng SIGNAL để làm điều đó.
delimiter //
drop trigger if exists aborting_trigger //
create trigger aborting_trigger before insert on t
for each row
begin
set @found := false;
select true into @found from t where a=new.a and b=new.b;
if @found then
signal sqlstate '45000' set message_text = 'duplicate insert';
end if;
end //
delimiter ;