我有一个包含10列的表,我必须从CSV文件中添加许多行。当然,我不能添加两个相同的行,所以我需要一个SQL语句,如果整行存在,则忽略该命令。仅当所有字段都相同时,才必须忽略INSERT。两行可能具有相同的 field1 或 field2 ,但并非所有字段都相同。
我尝试了INSERT IGNORE
,但它不起作用。没有列设置为UNIQUE
,因为只有整行都相同时才必须忽略INSERT
。
你有什么解决方案?谢谢!
答案 0 :(得分:2)
根据您的需要在所有列,然后INSERT IGNORE
或REPLACE INTO
上创建组合索引。
来自docs:
如果使用IGNORE关键字,则执行INSERT语句时发生的错误将被视为警告。例如,如果没有IGNORE,则复制表中现有 UNIQUE索引或PRIMARY KEY值的行会导致重复键错误,并且语句将中止。使用IGNORE时,仍未插入行,但未发出错误。