如何在php MySQL中插入“如果不存在”
我开始用google搜索,并找到了这篇谈论互斥表的文章。
我有一张约有1400万条记录的表格。 如果我想以相同的格式添加更多的数据,有没有办法确保我想插入的记录不存在,而不使用一对查询(即,一个查询来检查,一个要插入的结果集是空)?
一个字段上的唯一约束是否保证插入将会失败,如果它已经在那里?
似乎只有一个约束,当我通过php发布插入时,脚本就会呱呱叫。
一个字段上的唯一约束是否保证插入将会失败,如果它已经在那里?
插入新数据时会执行唯一约束。 如果您尝试将数据插入已有数据的表中,则应该得到如下所示的错误:
Error Code: 1062. Duplicate entry 'john-doe-(408)-999-9765' for key 'idx_name_phone'
您可以使用INSERT IGNORE
来简单地忽略重复行上的插入(错误本质上转为警告),或使用ON DUPLICATE KEY UPDATE
更新行而不是插入新行。 看到这个职位了解更多信息。