我正在尝试更新MySQL表中的一列,以便当另一列的新日期大于该列的现有日期时,该列更改为当前时间戳,否则保持不变。
例如,假设我有一个包含两列的表,enddate和enddate_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;