开发者社区> 问答> 正文

插入…在重复键上(不执行任何操作)?mysql

我有一个带有两列唯一键的表:

CREATE TABLE xpo.user_permanent_gift ( id INT UNSIGNED NOT NULL AUTO_INCREMENT , fb_user_id INT UNSIGNED NOT NULL , gift_id INT UNSIGNED NOT NULL , purchase_timestamp TIMESTAMP NULL DEFAULT now() , PRIMARY KEY (id) , UNIQUE INDEX user_gift_UNIQUE (fb_user_id ASC, gift_id ASC) ); 我想在该表中插入一行,但是如果键存在,则什么也不做!我不希望因为键存在而产生错误。

我知道有以下语法:

INSERT ... ON DUPLICATE KEY UPDATE ... 但是是否有类似的东西:

INSERT ... ON DUPLICATE KEY DO NOTHING ?

展开
收起
保持可爱mmm 2020-05-17 13:30:05 360 0
1 条回答
写回答
取消 提交回答
  • 是的,使用INSERT ... ON DUPLICATE KEY UPDATE id=id(即使id已分配给自身,它也不会触发行更新)。

    如果您不关心错误(转换错误,外键错误)和自动递增字段用尽(即使由于重复键而未插入行,它也会增加),请使用INSERT IGNORE。来源:stack overflow

    2020-05-17 13:30:19
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
搭建电商项目架构连接MySQL 立即下载
搭建4层电商项目架构,实战连接MySQL 立即下载
PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载

相关镜像