2012-03-31 41 views
0

我想僅在某些字段已被修改時觸發UPDATE觸發器。 是否有可能做一個if語句;執行特定查詢。Mysql觸發器如果目標字段已更改

爲例(不工作如圖所示):

DROP TRIGGER IF EXISTS `catch_mytable_update`// 
CREATE TRIGGER `catch_mytable_update` AFTER UPDATE ON `mytable` 
FOR EACH ROW BEGIN 

IF (old.name != new.name) THEN 

DELETE FROM trigger WHERE tablename='mytable' AND rowid = new.id; 
INSERT INTO trigger (tablename, rowid, cmd, cmduser, time) VALUES('mytable', new.id, 'UPDATE', CURRENT_USER(), NOW()); 

ENDIF// 

END// 

分隔符://

回答

1

嘗試改變:

IF (name.old != name.new) THEN 

到:

IF old.name != new.name THEN 
+0

對不起,是的是正確的。當我輸入問題時,這是一個拼寫錯誤。我試着改變了,我仍然收到一個錯誤:( – Louis 2012-03-31 07:17:15

+0

我們需要知道MySQL的錯誤代碼或消息,以幫助我們:) – 2012-03-31 07:19:23

+0

當我運行提到的查詢時,出現以下錯誤: # 1064 - 你的SQL語法錯誤;請檢查與您的MySQL服務器版本相對應的手冊,以獲取在第9行「'附近使用的正確語法。 – Louis 2012-03-31 07:24:28