MySQL如何在同一个表中只为一个列更新加时间戳

时间:2012-09-28 20:58:34

标签: mysql sql-update eventtrigger

到目前为止,这是我的代码

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的错误。它尖叫着我不能称自己更新同一张桌子。任何帮助将不胜感激。

1 个答案:

答案 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;