MySQL:如果行更新,则插入或更新

时间:2014-06-28 04:24:29

标签: mysql sql

我有表A和B,相同,带有时间戳列。我需要使用B更新A,添加B中不存在于A中的所有行,并使用相同的pk更新已存在的所有行。这与INSERT ... ON DUPLICATE KEY UPDATE条款有关。但是,A可能包含的行实际上比B中的同一行更新,因此在A.last_modified > B.last_modified我不想做任何事情的情况下。

有没有简单的解决方案?

1 个答案:

答案 0 :(得分:1)

您可以使用左连接来获取所需的行

insert into B
select a.*
from A a
left join B b on a.id = b.id
where b.last_modified < a.last_modified or b.last_modified is null
on duplicate key update ...;