CURRENT_TIMESTAMP仅更新一列

时间:2015-08-02 12:14:44

标签: mysql

我希望只有在更新一个特定的其他列而不是整行时才能将列集更新为CURRENT_TIMESTAMP。例如,在包含status,some_other_col,updated_on列的表中,我需要updated_on列中的CURRENT_TIMESTAMP仅在status中的值更改时更改,并且在更改时保持不变some_other_col。这是可能的,如果是,那么查询的正确语法是什么?

2 个答案:

答案 0 :(得分:1)

试试这个

DELIMITER //
 CREATE TRIGGER updtrigger BEFORE UPDATE ON mytable
     FOR EACH ROW
     BEGIN
     IF NEW.status <> OLD.status THEN
     SET NEW.updated_on = NOW();     
     END IF;
     END
     //

答案 1 :(得分:0)

更新状态列后,您可以更新updated_on列。它易于管理。如果您更改了数据源,则可以重写触发器。