MySQL INSERT如果不存在相同的整行

时间:2012-06-13 19:58:10

标签: mysql insert row unique

我有一个包含10列的表,我必须从CSV文件中添加许多行。当然,我不能添加两个相同的行,所以我需要一个SQL语句,如果整行存在,则忽略该命令。仅当所有字段都相同时,才必须忽略INSERT。两行可能具有相同的 field1 field2 ,但并非所有字段都相同。

我尝试了INSERT IGNORE,但它不起作用。没有列设置为UNIQUE,因为只有整行都相同时才必须忽略INSERT

你有什么解决方案?谢谢!

1 个答案:

答案 0 :(得分:2)

根据您的需要在所有列,然后INSERT IGNOREREPLACE INTO上创建组合索引。

来自docs

  

如果使用IGNORE关键字,则执行INSERT语句时发生的错误将被视为警告。例如,如果没有IGNORE,则复制表中现有 UNIQUE索引或PRIMARY KEY值的行会导致重复键错误,并且语句将中止。使用IGNORE时,仍未插入行,但未发出错误。