mysql 触发器 trigger 中断操作 抛出异常

来源:互联网 发布:生存之民工 知乎 编辑:程序博客网 时间:2024/05/17 01:15

通常情况下会遇到如下需求,当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的关键字,即新的记录对象

0 0
原创粉丝点击