在加载到mysql之前检查传入的csv文件中的重复数据

时间:2013-11-06 05:26:30

标签: mysql sql csv

数据库:MySQL

我有一个临时表,其中所有传入数据都是从CSV文件加载的。 我有一个主表,其中数据从临时表传输。 现在,我需要检查主表中是否已存在临时表中的任何行。 如果存在,我需要更新主表中的数据 否则,我需要将该行插入主表。

这里的问题是临时表中没有pk列,以便我可以知道temp和master表之间要比较哪一行。

有没有办法检查没有主键的现有行? 无法保证任何列都是唯一的。

请帮帮我。

1 个答案:

答案 0 :(得分:0)

将决定留给主表。

来自MySQL文档

INSERT [LOW_PRIORITY | HIGH_PRIORITY] [IGNORE]
[INTO] tbl_name [(col_name,...)]
SELECT ...
[ ON DUPLICATE KEY UPDATE col_name=expr, ... ]

因此,如果您从YourTempTable INSERT INTO执行SELECT yourMasterTable ON DUPLICATE KEY ...将满足您的需求