【问题标题】:How to 'insert if not exists' in php MySQL [duplicate]如何在 php MySQL 中“如果不存在则插入”[重复]
【发布时间】:2018-07-03 18:57:09
【问题描述】:

我从谷歌搜索开始,发现这篇文章讨论了互斥表。

我有一张包含约 1400 万条记录的表。如果我想以相同的格式添加更多数据,有没有办法确保我要插入的记录在不使用一对查询的情况下不存在(即,一个查询要检查,一个要插入是结果集是空)?

对字段的唯一约束是否保证插入会失败,如果它已经存在?

似乎只有一个约束,当我通过 php 发出插入时,脚本会发出嘶哑的声音。

【问题讨论】:

标签: php mysql mysqli


【解决方案1】:

对字段的唯一约束是否保证插入会失败,如果它已经存在?

插入新数据时会强制执行唯一约束。如果您尝试将数据插入到已经有数据的表中,您应该会收到如下错误:

Error Code: 1062. Duplicate entry 'john-doe-(408)-999-9765' for key 'idx_name_phone'

您可以使用INSERT IGNORE 简单地忽略重复行上的插入(该错误基本上变成了警告),或者使用ON DUPLICATE KEY UPDATE 更新行而不是插入新行。请参阅this post 了解更多信息。

【讨论】:

    猜你喜欢
    • 2013-12-22
    • 1970-01-01
    • 2017-04-19
    • 1970-01-01
    • 2011-03-11
    • 2019-10-17
    • 2012-12-13
    相关资源
    最近更新 更多