我想在觸發當前行更新後更新兩列。 endtime和starttime是日期時間類型。持續時間是整數,它將表示秒數。 Sequel Pro告訴我「[查詢1中的錯誤]您的SQL語法有錯誤;請查看與您的MySQL服務器版本相對應的手冊,在第5行''附近使用正確的語法 執行停止!我的sql觸發器,語法錯誤
CREATE TRIGGER `end_time_update` AFTER UPDATE ON `mytable`
FOR EACH ROW
BEGIN
UPDATE mytable
set endtime = now(), duration = TIMESTAMPDIFF(SECOND, starttime, endtime)
where id = new.id;
END;
創建觸發器後,任何更新失敗: 無法更新存儲的函數/觸發器中的'mytable'表,因爲它已被調用此存儲的函數/觸發器的語句使用。 – michael
您不能在觸發器中的同一張表上進行更新。這將創建一個無限循環。但是你可以使用'NEW'來引用當前記錄來修改它。我更新了答案 –
juergen,我已經使用你的更新答案,但現在續集親告訴我:更新的新行不允許在觸發後 – michael