到目前为止,这是我的代码
DELIMITER $$
CREATE TRIGGER status AFTER UPDATE ON users
FOR EACH ROW BEGIN
IF NEW.status != OLD.status
THEN INSERT INTO users (status_change_date)
VALUES (NOW());
ENDIF;
END$$
DELIMITER;
我们要做的是在更改指定字段时使用当前日期更新字段,并将该日期保存在status_change_date下的同一个表中。上面的代码抛出了MySQL的错误。它尖叫着我不能称自己更新同一张桌子。任何帮助将不胜感激。
答案 0 :(得分:1)
我想修改同一个表格,尝试使用BEFORE UPDATE
触发器代替AFTER UPDATE
,如下所示:
DELIMITER $$
CREATE TRIGGER status BEFORE UPDATE ON users
FOR EACH ROW BEGIN
IF NEW.status != OLD.status
THEN INSERT INTO users (status_change_date)
VALUES (NOW());
ENDIF;
END$$
DELIMITER;