这个问题在这里已有答案:
我开始用谷歌搜索,发现这篇文章讨论了互斥表 .
我有一张约有1400万条记录的表格 . 如果我想以相同的格式添加更多数据,有没有办法确保我想要插入的记录不存在而不使用一对查询(即,一个查询要检查,一个要插入是结果集是空)?
对字段的唯一约束是否保证插入如果已经存在则会失败?
似乎只有一个约束,当我通过php发出插入时,脚本呱呱叫 .
插入新数据时会强制执行唯一约束 . 如果您尝试将数据插入到已有数据的表中,您应该收到如下错误:
Error Code: 1062. Duplicate entry 'john-doe-(408)-999-9765' for key 'idx_name_phone'
您可以使用 INSERT IGNORE 来简单地忽略重复行上的插入(错误实际上转为警告),或使用 ON DUPLICATE KEY UPDATE 更新行而不是插入新行 . 有关更多信息,请参阅this post .
INSERT IGNORE
ON DUPLICATE KEY UPDATE
1 回答
插入新数据时会强制执行唯一约束 . 如果您尝试将数据插入到已有数据的表中,您应该收到如下错误:
您可以使用
INSERT IGNORE
来简单地忽略重复行上的插入(错误实际上转为警告),或使用ON DUPLICATE KEY UPDATE
更新行而不是插入新行 . 有关更多信息,请参阅this post .