在基于lastUpdatedAt的mysql表中插入或更新

时间:2019-03-29 07:40:28

标签: mysql

我想在表中插入一条记录。条件如下:

  • 如果表中没有id,则只需将其插入。

  • 如果已经插入ID,则检查lastUpdatedAt,如果lastUpdatedAt小于新日期,则更新行。

  • 否则忽略插入操作。

我已经搜索了它,发现使用称为'DUAL'的mysql虚拟表是可能的。但只有在id不可用时才插入。如果id可用并且lastUpdatedAt小于新日期,则不会插入数据。

INSERT IGNORE INTO students(id,marks,lastUpdatedAt) 
    SELECT 111,75,'2019-03-29' FROM DUAL WHERE NOT EXISTS(SELECT * FROM students WHERE id=111 AND lastUpdatedAt > '2019-03-29')

0 个答案:

没有答案