仅使用唯一记录更新 MySQL table?

Updating MySQL table with only unique records?

我正在谷歌搜索并阅读该网站上的帖子,但不清楚我应该如何插入唯一记录。

我基本上有一个巨大的文件,其中只有一列数据需要导入数据库 table,其中已经存在我的文本文件中的数千条记录。

我需要导入的文本文件中没有 ID,我正在阅读的内容 insert ignore 看起来正在解决重复的 ID。我想为添加的任何新记录创建新 ID,但显然我不能重复。

这最好通过加载文件中的数据来完成...但真的不确定:

插入忽略? 开启重复键?

实现所需内容的最简单方法是使用 LOAD DATA 读取整个文件,然后将所有非重复项插入已存在的 table。

LOAD DATA LOCAL INFILE 'large_file.txt' INTO TABLE new_table
FIELDS TERMINATED BY ',' 
ENCLOSED BY '"' 
LINES TERMINATED BY '\r\n'
(name);

这假设您的巨型文件的第一行包含一列header。如果是,那么您可以在上面的语句中添加 IGNORE 1 LINES

您现在可以使用 INSERT INTO IGNORE:

INSERTnew_table 中的名称添加到您的 already-existing table 中
INSERT IGNORE INTO your_table_archive (name)
SELECT name
FROM new_table

MySQL 遇到的任何重复记录将 插入,而是保留原始记录。一旦你得到了你需要的东西,你就可以放弃 new_table