当前位置: 首页 > 面试题库 >

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

公孙茂学
2023-03-14
问题内容

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

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


问题答案:

是的,使用INSERT ... ON DUPLICATE KEY UPDATE id=id(即使id已分配给自身,它也不会触发行更新)。

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



 类似资料:
  • 问题内容: 我了解存在和。但是,当有重复的键时,我想对临时表进行操作,以记录已违反的唯一键的记录,以便将其输出给用户。 有什么办法可以做吗?如果有帮助,我正在尝试进行批量插入。 问题答案: 使用,您不能插入到另一个表中-也没有可用的替代功能。 您可以通过两种自定义/替代方式来实现此目的: 使用对此问题的可接受答案中概述的:将MySQL ON DUPLICATE KEY插入到审计表或日志表中 创建一

  • 问题内容: 我有一张桌子,就是PK。当我插入行时,将有重复的键,并且我需要总结三个统计信息。我在Java中对PreparedStatement使用以下查询: 是否有更简洁的查询来实现?因为我简化了查询,所以那里有十多个统计信息。 问题答案:

  • 我正在尝试通过NIFI从oracle数据库中提取数据。在画布中,我将文件大小为0 KB的“GenerateFlowFile”处理器安排为每5分钟运行一次。这只是为了在成功时触发“executesql”处理器。对于“executeSQL”,我将DB连接池服务设置为DBCPConnectionPool。我输入SQL查询“select*FROM sometable”。我的DBCPConnectionPo

  • 假设我有下表: 我需要一个查询,将插入不存在的标签,并返回所有请求的标签ID。考虑以下事项: 此查询的输出是: 我需要的是在输出中有。

  • 问题内容: 我正在运行一个Electron项目,一切都很好。但是现在,当我运行package.json中的任何脚本(包括npm start)时,它只是转义了一行而没有执行任何操作。 我的package.json: 我尝试更新NPM,但没有用。当我在其他项目中尝试过时,也不起作用。 提前致谢 问题答案: npm具有配置密钥。它的期望值是布尔值,默认设置为。 可能是由于疏忽而将其设置为。 要/ 的配置

  • 在插入数据库后,我一直在尝试重定向,但它不起作用。插入工作正常,但没有重定向。这是我的代码