在mysql中的重复条目上跳过插入

Posted

技术标签:

【中文标题】在mysql中的重复条目上跳过插入【英文标题】:Skip insert on duplicate entry in mysql 【发布时间】:2012-04-12 17:30:43 【问题描述】:

我有一个最喜欢的表,其中包含一些字段,例如 login_id,driver_id(一个 login_id 可能有多个 driver_id) 。然后我使用批量更新,没有检查 driver_id 是否存在于表中。

输入数据将设置驱动程序 ID,如果相关 login_id 已经存在相同的 ID,我需要跳过驱动程序 ID 的插入。所以新的id会被插入,其他的不会

我可以用mysql做什么,表中需要的所有设置是什么。

请指教

【问题讨论】:

【参考方案1】:

在 mysql 中使用 login_id 和 driver_id 创建一个唯一键。

当您尝试根据这些键插入现有记录时,将引发错误。然后,您可以捕获此错误并正常进行。

CREATE UNIQUE INDEX unique
  ON tbl_name (login_id, driver_id)

【讨论】:

【参考方案2】:

您可以使用“INSERT IGNORE INTO”。它返回更新的行数。

INSERT IGNORE INTO favorite(login_id,driver_id) VALUES (login_id,driver_id) (login_id,driver_id).....

【讨论】:

以上是关于在mysql中的重复条目上跳过插入的主要内容,如果未能解决你的问题,请参考以下文章

MySQL utf8 多字节(utf8mb4)插入重复条目问题

从 perl 插入 mysql 时的 dup 条目

在 Doctrine2/Symfony2 中的重复条目上插入忽略

MySQL数据库的重复条目条件

如果不存在Mysql,则插入[重复]

如果不存在,mysql插入不起作用创建重复键