Mysql

更新嵌套行

  • July 31, 2017

我正在嘗試使用此程式碼:

DELIMITER //
CREATE TRIGGER myTrigger AFTER UPDATE ON cityies
FOR EACH ROW
BEGIN
if NEW.visitors <=> OLD.visitors THEN
set visit_time = now()
END IF;
END;//
DELIMITER ;

我收到此錯誤消息:

未知系統變數 visit_time

注:visit_timeDATETIME類型。

有兩個問題

問題 #1

visit_time需要加上前綴NEW.

問題 #2

它必須是BEFORE UPDATE,而不是AFTER UPDATE因為您不能更改AFTER觸發器中的值。

您的程式碼應閱讀

DELIMITER //
CREATE TRIGGER myTrigger BEFORE UPDATE ON cityies
FOR EACH ROW
BEGIN
   IF NEW.visitors <> OLD.visitors THEN
       SET NEW.visit_time = now();
   END IF;
END
//
DELIMITER ;

引用自:https://dba.stackexchange.com/questions/182272