当新日期大于现有日期时更新MySQL列



我正在尝试更新MySQL表中的一列,以便当另一列的新日期大于该列的现有日期时,该列更改为当前时间戳,否则保持不变。

例如,假设我有一个包含两列的表,enddateenddate_modif。如果更新记录中enddate中的日期大于现有表中enddatend date_modif更改为当前时间戳。否则,它将保持相同的值。

如何在MySQL中做到这一点?

提前谢谢。

更新后的触发器应该可以完成任务。

尝试:

CREATE TRIGGER `enddate_modif_trigger` BEFORE UPDATE ON `my_table`
FOR EACH ROW
SET NEW.enddate_modif = (SELECT CASE WHEN NEW.enddate  > enddate_modif
THEN CURRENT_TIMESTAMP  
ELSE NEW.enddate_modif
END
FROM my_table 
); 

我认为您可以使用更新后触发器像这个

if(New.enddate >Old.enddate ) then 
update yourtable set enddate_modif=NOW() where Your_table_ID=NEW.Your_table_ID;
end iff;

最新更新