【问题标题】:INSERT IGNORE Inserting 0 rowsINSERT IGNORE 插入 0 行
【发布时间】:2010-01-09 03:23:02
【问题描述】:

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

【问题讨论】:

    标签: mysql sql insert rows


    【解决方案1】:

    这两个INSERT 不必完全相同,只要主键列相同即可。

    INSERT IGNORE 如果已经存在具有相同主键的行,则将忽略插入。 如果您使用INSERT 而不是INSERT IGNORE,则会收到错误消息(主键重复)。

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

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

    【讨论】:

    • 谢谢蒂洛!我编辑了作为主键的字段,现在效果很好!