自动触发更新mysql中的记录

时间:2016-07-25 10:01:48

标签: mysql triggers

我从ETL工具

接收数据到mysql表中

这是表格

用户

id username latestlogdate
1   a        2016-11-05 15:52:00 
2   b        2016-11-05 15:52:00
3   c        2016-07-25 15:00:00
4   d        2016-07-24 03:15:00

在此表中,第3和第4条记录很好,因为它们正确无误。但是有时像1和2这样的记录会带来一些未来的日期。

ETL没有问题。

这是流程......

csvfiles ----> ETL -----> Mysqltable

这些未来日期会出现在文件中。文件我不能改变。

所以我想问一下是否有任何触发选项,以便我可以将此类记录更新为未来日期到当前日期。

我的问题是,如果任何记录在未来的latestlogdate表中到达,那么应该自动更新到当前日期。(他们到达表中的那一天)

提前致谢

1 个答案:

答案 0 :(得分:0)

我认为,您可以像这样创建一个触发器

CREATE TRIGGER `MyDatabase`.`MyTriggerName` BEFORE INSERT
ON MyDatabase.MyTable FOR EACH ROW
BEGIN
    if new.latestlogdate > now() then
      new.latestlogdate = now()
    end if
END;

XAV