1. 程式人生 > >mysql 觸發器 trigger 中斷操作 丟擲異常

mysql 觸發器 trigger 中斷操作 丟擲異常

通常情況下會遇到如下需求,當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的關鍵字,即新的記錄物件