2016-05-31 54 views
1

我試圖創建這個觸發,但我發現錯誤創建MySQL的觸發

[錯誤] 1064 - 你在你的SQL語法錯誤;檢查手冊 對應於您的MySQL服務器版本的正確語法 使用附近'; CREATE TRIGGER ca_passwd_trigger BEFORE UPDATE上的用戶 FOR EACH ROW BEGIN「在1號線

delimiter $$ 
DROP TRIGGER IF EXISTS ca_passwd_trigger ; 
$$ 
CREATE TRIGGER ca_passwd_trigger BEFORE UPDATE ON users 
FOR EACH ROW 
BEGIN 
    IF ((NEW.passwd <=> OLD.passwd) = 0) THEN 
     SET NEW.passwd_modified_at = NOW(); 
    END IF; 
END;$$ 
delimiter ; 

回答

3

在查詢你在兩個地方用分隔符$$添加查詢終止;。以下查詢具有正確的查詢終止符和分隔符。

DELIMITER $$ 
DROP TRIGGER IF EXISTS ca_passwd_trigger; -- removed the delimiter $$ after the terminator ; 
CREATE TRIGGER ca_passwd_trigger BEFORE UPDATE ON users 
FOR EACH ROW 
BEGIN 
    IF ((NEW.passwd <=> OLD.passwd) = 0) THEN 
     SET NEW.passwd_modified_at = NOW(); 
    END IF; 
END$$ -- removed the terminator ; before the delimiter $$ 
DELIMITER ;