0

数据库:MySQL

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

对我来说,这里的问题是临时表中没有 pk 列,因此我可以知道要在临时表和主表之间比较哪一行。

有没有办法检查没有主键的已经存在的行?不能保证任何列都是唯一的。

请帮帮我。

4

1 回答 1

0

将决定留给主表。

来自 MySQL 文档

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

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

于 2013-11-06T10:28:49.583 回答