在MySQL批量插入上显示重复项

时间:2013-05-01 18:05:35

标签: mysql duplicates bulkinsert

我有一个CSV文件,我需要输入我的数据库。我的作案手法是批量插入。其中一列附加了唯一性约束,但它不是主列。如果存在重复条目,则它会正确跳过该行,并且不会将其输入数据库。 (在命令行上,它表示重复:n,其中n是重复的总数)。

无论如何我可以检索重复的行号吗?例如,使用显示警告或显示错误,它会指出最后的MySQL错误和警告,无论如何我可以从MySQL单独检索重复项吗?

感谢。

1 个答案:

答案 0 :(得分:1)

您可以先将数据输入临时表,不要使用唯一性约束,然后执行查询以查找所有重复项。

SELECT unique_column, count(*) c
FROM temp_tablename
GROUP BY unique_column
HAVING c > 1;

然后使用以下命令将其从临时表复制到真实表:

INSERT IGNORE INTO tablename SELECT * FROM temp_tablename;