2016-05-17 74 views
0

我想創造出改變了場api_key_modified在表wp_users如果表wp_bp_xprofile_datafield_id106條目得到修改的觸發。該條目應該只針對同一用戶進行更新。MySQL的觸發與IF語句,返回#1064

這是我的代碼:

CREATE TRIGGER trigger_api_key_update AFTER UPDATE ON wp_bp_xprofile_data 
FOR EACH ROW 
    IF new.field_id = 106 THEN 
     UPDATE wp_users SET api_key_modified = 1 WHERE id = new.user_id; 
    END IF; 

而作爲一個結果我得到:

1064 - 你在你的SQL語法錯誤;請查看對應的手冊>你的MySQL服務器版本使用附近的'第4行

如果我刪除IF語句的代碼不工作正確的語法 - 但隨後將更新數據所有的修改不僅限於field_id 106.

回答

1

您需要更改分隔符。否則,定義在第一;結束這將使它不完整

delimiter | 
CREATE TRIGGER trigger_api_key_update AFTER UPDATE ON wp_bp_xprofile_data 
FOR EACH ROW BEGIN 
    IF new.field_id = 106 THEN 
     UPDATE wp_users SET api_key_modified = 1 WHERE id = new.user_id; 
    END IF; 
END 
| 
delimiter ; 

沒有if代碼工作,因爲它是一個只有一個;在最後一條語句。

+0

我試過用我從其他帖子看到的分隔符,做了和你一樣的$$顯示,但它沒有奏效。但你的確如此,非常感謝你! – BlackOutDev