2014-07-16 145 views
1

試圖創建一個簡單的觸發器,在表更新後,它會檢查計數(InvalidLogins)是否超過4,如果是,則將字段'LockedOut'設置爲1.下面是我如何創建觸發器,這是我對MySQL的第一個觸發器,但我無法實現它。更正此觸發器的MySQL語法?

CREATE TRIGGER update_user_lockout after update ON members 
FOR EACH ROW SET LockedOut = 1 where invalidLogins < 4 

是,MySQL返回的錯誤是: 錯誤代碼:1064您的SQL語法錯誤;檢查對應於你的MySQL服務器版本使用附近的」 .LockedOut = 1,其中invalidLogins < 4' 正確的語法在第2行

回答

2
delimiter | 
CREATE TRIGGER update_user_lockout before update ON members 
FOR EACH ROW 
    IF NEW.invalidLogins < 4 THEN 
     SET NEW.LockedOut = 1; 
    END IF; 
END 
| 
delimiter ; 
  • 目前的戰績可以用NEW
  • 參考手冊選擇除;之外的另一個分隔符。否則,觸發定義將結束在第一;這是太早
  • 使用before觸發改變的值更新
+0

這正確你寫:-D感謝您的腳本拼寫分隔符之後工作之前!將在〜2分鐘內接受你的答案。 – user1114503