mysql - 另一列值更改的时间戳列

mysql - timestamp column of another column value change

假设我有一个 mySQL table 几列:

id, name, job, jobUpdatedAt

每当 job 列发生变化时,我希望 mySQL 自动更新 jobUpdatedAt 的时间戳。 (因此,如果仅更改名称,则不会更新)

这样的事情可能吗?

谢谢

CREATE TRIGGER trigger_name
BEFORE UPDATE
ON table_name
FOR EACH ROW
SET NEW.jobUpdatedAt = CASE WHEN OLD.job = NEW.job
                            THEN OLD.jobUpdatedAt
                            ELSE CURRENT_TIMESTAMP
                            END;

jobUpdatedAt只有在job被事实更新后才会续订

jobUpdatedAt 如果查询应尝试显式更新它,将被保存。

https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=1b48bce653eb9a1d778e406fa5af894a