SQL查询不使用INSERT IGNORE INTO添加新条目

时间:2013-05-06 04:13:22

标签: mysql sql sql-insert

所以我有一个脚本,一次获取大约100个项目的数据,并使用如下命令将它们插入MySQL数据库:

INSERT IGNORE INTO beer(name, type, alcohol_by_volume, description, image_url) VALUES('Bourbon Barrel Porter', 2, '9.1', '', '')

我运行了一次脚本,并在数据库中填入了100个条目。但是,我使用相同的SQL语法再次运行脚本,收集所有新数据(即没有重复项),但数据库没有反映任何新条目 - 它是我在脚本的第一次迭代中插入的相同的100个条目。

我记录了查询,我可以确认查询是否使用新数据发出请求,因此脚本不收集新数据不是问题。

名称字段是唯一字段,但没有其他字段。我错过了什么吗?

1 个答案:

答案 0 :(得分:0)

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

如果没有主键,则无法忽略重复键。你应该总是设置一个主键,所以请这样做 - 如果你想要有不应重复的其他列,请将它们设置为“unique”。

相关问题