更新属性上的Mysql时间戳链接到另一列

时间:2017-08-25 07:00:36

标签: mysql

我有桌上的工作单:

我希望在updated_1更新时,使用时间戳更新属性follow_up1

wt_id      follow_up1         updated_1            follow_up2        updated_2
1              red            2017-08-24 09:50

但是,更新follow_up2后,updated_1中的值应保持不变,并且只更新updated_2

wt_id      follow_up1         updated_1            follow_up2        updated_2
1              red            2017-08-24 09:50       blue             2017-08-24 10:50

这两个当前都设置为'ON UPDATE CURRENT_TIMESTAMP',并且当任何follow_up列更新时,updated_1updated_2都会更新。有没有办法链接它们,以便它们只在更新另一个属性时更新?

1 个答案:

答案 0 :(得分:0)

你可以在数据库端执行此操作的唯一方法是使用触发器,但我建议在应用程序代码中使用此逻辑,而不是在数据库中。只是因为保持清洁。应用程序逻辑应该保留在应用程序中。

如果你坚持,你可以用

来做
DELIMITER $$
CREATE TRIGGER mytriggername BEFORE UPDATE ON mytablename
FOR EACH ROW
BEGIN
IF (OLD.follow_up1 <> NEW.follow_up1) THEN
SET NEW.updated_1 = NOW();
END IF;
/* and so on, same for the other column */
END $$
DELIMITER ;