通常情况下会遇到如下需求,当insert的时候,如果已经有记录,则中断操作,抛出相应错误。
mysql命令行创建trigger的时候要注意一下分号的使用,因为mysql解析器遇到分号会执行,所以我们需要用delimiter声明一个执行符号,如//
创建trigger语句如下
CREATE TRIGGER tg_user_before_create BEFORE INSERT ON user FOR EACH ROW
BEGIN
set @count = (SELECT COUNT(*) FROM user WHERE NEW.name=name AND NEW.age=age AND NEW.gender=gender);
if @count > 0 then
SIGNAL SQLSTATE 'TX000' SET MESSAGE_TEXT = 'user has been exsits';
end if;
END;
注意:NEW是mysql的关键字,即新的记录对象