数据库:MySQL
我有一个临时表,其中所有传入数据都是从CSV文件加载的。 我有一个主表,其中数据从临时表传输。 现在,我需要检查主表中是否已存在临时表中的任何行。 如果存在,我需要更新主表中的数据 否则,我需要将该行插入主表。
这里的问题是临时表中没有pk列,以便我可以知道temp和master表之间要比较哪一行。
有没有办法检查没有主键的现有行? 无法保证任何列都是唯一的。
请帮帮我。
答案 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
...将满足您的需求