我希望只有在更新一个特定的其他列而不是整行时才能将列集更新为CURRENT_TIMESTAMP。例如,在包含status,some_other_col,updated_on
列的表中,我需要updated_on
列中的CURRENT_TIMESTAMP仅在status
中的值更改时更改,并且在更改时保持不变some_other_col
。这是可能的,如果是,那么查询的正确语法是什么?
答案 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列。它易于管理。如果您更改了数据源,则可以重写触发器。