INSERT IGNORE插入0行

时间:2010-01-09 03:23:03

标签: sql mysql insert rows ignore

当我试图在MYSQL中运行“INSERT IGNORE ...”以仅将一个变量添加到多个选项的表中时,在第一次插入之后,它拒绝工作。它说“插入行:0”并且不会将我的新值插入数据库。我相信这是因为已经存在一个“无”值的条目,并且MYSQL不允许复制空字段。这似乎是奇怪的行为(只要两个插入不完全相同),所以我想知道是否有某种方法可以避免这种情况。

感谢任何肝脏!

1 个答案:

答案 0 :(得分:2)

两个INSERT不必完全相同,它们必须与主键列相同。

如果已存在具有相同主键的行,则

INSERT IGNORE将忽略插入。 如果您执行INSERT而不是INSERT IGNORE,则会收到错误(重复的主键)。

如果您想要更新现有行,可以使用REPLACE

无论哪种方式,每个主键只能有一行。