我正在谷歌搜索并阅读该网站上的帖子,但不清楚我应该如何插入唯一记录。
我基本上有一个巨大的文件,其中只有一列数据需要导入到一个数据库表中,其中已经存在我的文本文件中的数千条记录。
我需要导入的文本文件中没有 ID,我正在阅读的内容 insert ignore 看起来正在解决重复的 ID。我想为添加的任何新记录创建新 ID,但显然我不能重复。
理想情况下,这将通过加载数据 infile 来完成......但真的不确定:
插入忽略? 在重复 key 上?
最佳答案
实现所需内容的最简单方法是使用 LOAD DATA
读取整个文件,然后将所有非重复项插入已存在的表中。
LOAD DATA LOCAL INFILE 'large_file.txt' INTO TABLE new_table
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
(name);
这假设您的巨型文件的第一行不包含列标题。如果是,那么您可以将 IGNORE 1 LINES
添加到上面的语句中。
您现在可以使用 INSERT INTO IGNORE
将 new_table
中的名称INSERT
到您已经存在的表中:
INSERT IGNORE INTO your_table_archive (name)
SELECT name
FROM new_table
MySQL 遇到的任何重复记录都不会被插入,而是保留原始记录。一旦你从中得到你需要的东西,你就可以删除 new_table
。
关于mysql - 仅使用唯一记录更新 MySQL 表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31932856/