我在MySQL中觸發時遇到問題。我有一個名爲「last_modified」的列,我希望在編輯表時自動更新當前的日期和時間。使用觸發器,這是我的SQL查詢:使用觸發器更新DATETIME,在MySQL中獲取錯誤1442
delimiter //
CREATE TRIGGER trg_update_responders BEFORE UPDATE ON survey_responders
FOR EACH ROW
BEGIN
UPDATE survey_responders
SET NEW.last_modified = CURRENT_DATETIME();
END;//
然而,當我更新表,如用此查詢:
UPDATE survey_responders SET first_name = "bob" WHERE id = "1";
MySQL工作臺顯示錯誤1442:「無法更新表'table_name'在存儲函數/觸發器中,因爲它已經被調用此存儲函數/觸發器的語句使用「
我已經看過類似的問題,但是仍然沒有修復它。幫助表示讚賞。
**更新**
這奏效了:
delimiter //
CREATE TRIGGER trg_update_responders BEFORE UPDATE ON survey_responders
FOR EACH ROW
BEGIN
SET NEW.last_modified = CURRENT_TIMESTAMP();
END;//
好像我根本沒有必要重複
UPDATE survey_responders
和current_datetime中()不存在,我不得不使用CURRENT_TIMESTAMP()。
更新語句本身沒有更新last_modified列的任何原因? –
這是一項任務的一部分;它需要我使用觸發器。 – Richard