比较两个表,如果添加了其他行,则仅更新第二个表

时间:2011-11-09 20:00:56

标签: php mysql

我想我终于达到了谷歌/ mysql教育不再有效的谷歌搜索。所以,这是我关于堆栈溢出的第一个问题。我希望我不要搞砸了。

我每天两次从第三方导入一张桌子。我想将表导入现有表。在更新之间,两个表都将被更改。导入的表将具有不同的行数,但现有表将在更改的行中具有值。

我只想添加现有表中尚不存在的行,但由于现有表的值已更改,我不想使用mysql的REPLACE。

关于如何做到这一点的任何想法?

1 个答案:

答案 0 :(得分:0)

使用INSERT IGNORE可能会很幸运。

INSERT IGNORE
  INTO table1 
SELECT *
  FROM table2

这会将table2中的所有新主键值插入table1。如果密钥已经存在于table1中,它将取代table2中的密钥,因此不会插入/替换它。