MySQL中ON DUPLICATE KEY UPDATE语法

mysql特殊语法insert into .. on duplicate key update ..使用详解 阅读详情
如果在INSERT语句末尾指定了ON DUPLICATE KEY UPDATE,并且插入行后会导致在一个UNIQUE索引或PRIMARY KEY中出现重复值,则在出现重复值的行执行UPDATE;如果不会导致唯一值列重复的问题,则插入新行。
例如,如果列 a 为 主键 或 拥有UNIQUE索引,并且包含值1,则以下两个语句具有相同的效果:
1INSERTINTO TABLE (a,c) VALUES (1,3)ON DUPLICATE KEY UPDATE c=c+1;
2UPDATETABLE SET c=c+1 WHERE a=1;
如果行作为新记录被插入,则受影响行的值显示1;如果原有的记录被更新,则受影响行的值显示2。
这个语法还可以这样用:
如果INSERT多行记录(假设 a 为主键或 a 是一个 UNIQUE索引列):
11.INSERTINTO TABLE (a,c) VALUES (1,3),(1,7)ON DUPLICATE KEY UPDATE c=c+1;

执行后, c 的值会变为 4 (第二条与第一条重复, c 在原值上+1).
12.INSERTINTO TABLE (a,c) VALUES (1,3),(1,7)ON DUPLICATE KEY UPDATE c=VALUES(c);

执行后, c 的值会变为 7 (第二条与第一条重复, c 在直接取重复的值7).
注意:ON DUPLICATE KEY UPDATE只是MySQL的特有语法,并不是SQL标准语法!
这个语法和适合用在需要 判断记录是否存在,不存在则插入存在则更新的场景.
MySQL ON DUPLICATE KEY UPDATE 语法详解与应用实践 数据库操作中的原子性更新是保证数据一致性的关键技术,MySQL通过ON DUPLICATE KEY UPDATE语法实现了高效的'存在即更新,不存在则插入'机制。该技术基于唯一键约束检测冲突,在单次原子操作中完成条件判断与数据更新,避免了传统先查询后更新带来的竞态条件和性能开销。在数据同步、计数器统计、配置管理等高频更新场景中表现优异,特别适合电商库存管理、用户积分系统等需要处理并发写入的业务。通过VALUES()函数引用和批量操作支持,开发者可以构建高性能的数据处理逻辑,同时减少网络往返和SQL解析开销。 阅读详情

相关推荐

基于QGIS的DEM地形数据精细化处理:从裁剪、合并到成果输出

本文详细介绍了使用QGIS进行DEM地形数据的精细化处理流程,包括数据获取、裁剪、合并及成果输出等关键步骤。通过实战技巧和注意事项,帮助用户高效处理地形数据,适用于GIS分析、三维建模等应用场景。

weixin_29093017的博客 450

on duplicate key update导致主键不连续自增的问题

http://blog.youkuaiyun.com/u011900448/article/details/55044990 最近项目上需要实现这么一个功能:统计每个人每个软件的使用时长,客户端发过来消息,如果该用户该软件已经存在增更新使用时间,如果没有则新添加一条记录,代码如下: [html] view plain copy     

z69183787的专栏 2085

4.UE数字人工程运行逻辑及程序逻辑

UE数字人工程运行逻辑及程序逻辑

6086

mysql中on duplicate key update使用详解

on duplicate key” 是在执行插入操作时的一个选项,它指示在遇到已经存在的键值时要执行的操作。当在数据库中使用插入操作时,如果键值已经存在,会触发错误。使用“on duplicate key”选项可以定义在遇到这种情况时要执行的操作。例如,在MySQL中,可以在INSERT语句中使用“ON DUPLICATE KEY UPDATE”语句来指定在遇到重复键时要执行的操作。这个选项后面通常跟着一个或多个列名和值对,表示在遇到重复键时更新这些列的值。

技术人集结地 1万+

Spine换装系统深度优化:从局部换肤到动态合批的进阶之路

本文深入探讨了Spine换装系统的性能优化策略,从局部换肤到动态合批的进阶技术。通过分析传统方案的性能瓶颈,提出动态合批、GPU Instancing等高级优化方法,显著降低Draw Call和内存占用,提升游戏性能。适用于MMO和大型游戏开发,帮助技术美术和工程师突破大规模换装场景的性能限制。

vulkan6gpu的博客 554

WPS Office 2026免费安装指南:AI办公与安全使用全解析

办公软件作为数字化办公的核心工具,其基本原理是通过文档处理、数据计算和演示展示等功能模块满足用户日常办公需求。随着人工智能技术的发展,现代办公软件逐步集成AI能力,通过自然语言处理和数据分析算法提升工作效率。在技术价值层面,优秀的办公软件不仅需要保持格式兼容性和跨平台同步能力,更要注重用户数据安全防护。从应用场景来看,无论是个人文档编辑、企业报表分析还是团队协作演示,办公软件都发挥着关键作用。WPS Office 2026作为国产办公软件代表,深度融合AI助手功能,支持智能写作和数据分析,同时通过官方免费策

weixin_30599769的博客 716

MySQL中ON DUPLICATE KEY UPDATE的介绍与使用、批量更新、存在即更新不存在则插入

一、ON DUPLICATE KEY UPDATE的介绍 二、ON DUPLICATE KEY UPDATE的使用 2.1、案例一:根据主键id进行更新 2.2、案例二:根据唯一索引进行更新(常用) 2.3、案例三:没有主键或唯一键字段值相同就插入 2.4、案例四:主键与唯一键字段同时存在 三、ON DUPLICATE KEY UPDATE的注意事项 3.1、on dupdate key update之后values的使用事项 3.2、对values使用判断 3.3、唯一索引大小写敏感问题 四、ON DUP

weixin_49114503的博客 3万+

Linux下的隐藏技术(文件隐藏、进程隐藏、端口隐藏、权限隐藏、命令隐藏)

这种技巧是关键记录删除,或者我们可以暴力点,比如前150行是用户的正常操作记录,150以后是攻击者操作记录。在Linux中,使用chattr命令来防止root和其他管理用户误删除和修改重要文件及目录,此权限用ls -l是查看不出来的,从而达到隐藏权限的目的。上面的命令会临时禁用历史功能,这意味着在这命令之后你执行的所有操作都不会记录到历史中,然而这个命令之前的所有东西都会原样记录在历史列表中。这种情况下我们怎么办?在shell中执行的命令,不希望被记录在命令行历史中,如何在linux中开启无痕操作模式呢?

墨痕诉清风的博客 745

mysql中插入语句ON DUPLICATE KEY用法

ON DUPLICATE KEY是mysql中特有用法, INSERT INTO tablename(field1,field2, field3, ...) VALUES(value1, value2, value3, ...) ON DUPLICATE KEY UPDATE field1=value1,field2=value2, field3=value3, ...; INSERT INT...

qq_19586619的博客 4277

华为OD机考双机位C卷 - 区间交集(Java & Python& JS & C/C++ & GO )

华为OD机考双机位C卷 - 区间交集

算法大师! 1136

Multisim14.0仿真应用设计(三十九)74LS183 高速全加器应用仿真

74LS183是一种高速全加器,可以同时执行四位二进制数的加法运算。它的输入端包括两个4位二进制数和一个进位信号,输出端则为一个4位二进制数和一个进位信号。

zhusl6688的博客 3851

mysql update 删除语法错误,MySQL ON DUPLICATE KEY UPDATE语法错误

Hey guys I was wondering if anyone can spot any mistakes in my sql statement. I would like it to insert a new record into my table if one doesn't exists already. If it does exist then just update it. ...

weixin_35940511的博客 737

详解AUTOSAR:AUTOSAR架构中的配置文件(拓展篇—7)

查看AUTOSAR代码包时会发现一些这样格式的文件:xxx_PBcfg.c、xxx_Lcfg.c和xxx_Cfg.h,本篇博文讲一讲这几个配置文件的作用和特点。

不脱发的程序猿 2146

深入mysql "ON DUPLICATE KEY UPDATE" 语法的分析

mysql "ON DUPLICATE KEY UPDATE" 语法 如果在INSERT语句末尾指定了ON DUPLICATE KEY UPDATE,并且插入行后会导致在一个UNIQUE索引或PRIMARY KEY中出现重复值,则在出现重复值的行执行UPDATE;如果不会导致唯一值列重复的问题,则插入新行。 例如,如果列 a 为 主键 或 拥有UNIQUE索引,并且包含值1,则以下两个语句具有

php_Zhaop的博客 636

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

mysql duplicata_MySQL ON DUPLICATE KEY UPDATE 语法

mysql "ON DUPLICATE KEY UPDATE" 语法如果在INSERT语句末尾指定了ON DUPLICATE KEY UPDATE,并且插入行后会导致在一个UNIQUE索引或PRIMARY KEY中出现重复值,则在出现重复值的行执行UPDATE;如果不会导致唯一值列重复的问题,则插入新行。例如,如果列 a 为 主键 或 拥有UNIQUE索引,并且包含值1,则以下两个语句具有相同的效...

weixin_42501904的博客 205

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

mysql "ON DUPLICATE KEY UPDATE" 语法

如果在INSERT语句末尾指定了ON DUPLICATE KEY UPDATE,并且插入行后会导致在一个UNIQUE索引或PRIMARY KEY中出现重复值,则在出现重复值的行执行UPDATE;如果不会导致唯一值列重复的问题,则插入新行。  例如,如果列 a 为 主键 或 拥有UNIQUE索引,并且包含值1,则以下两个语句具有相同的效果:  1 INSERT 

swrd 762

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

mysql中ON DUPLICATE KEY UPDATE用法及各数据库对应语法

mysql中ON DUPLICATE KEY UPDATE用法及各数据库对应语法

qq_41512902的博客 1093

MySQL ON DUPLICATE KEY UPDATE语法详解与实战

数据库的原子性操作是保证数据一致性的关键技术,其中INSERT和UPDATE的组合操作在业务场景中尤为常见。MySQL提供的ON DUPLICATE KEY UPDATE语法通过检测唯一键冲突自动转换操作类型,实现了高效的'存在即更新,不存在则插入'机制。从技术原理看,该语法先尝试标准INSERT,遇到唯一键冲突(错误码1062)时触发UPDATE子句,这种设计既减少了网络往返又降低了应用层复杂度。在电商库存管理、用户行为统计等高并发场景中,合理使用该语法配合批量操作可以显著提升性能,实测显示批量处理比单条

weixin_32430941的博客 50

深入解析MySQL的INSERT ON DUPLICATE KEY UPDATE语法及其高效应用

本文深入解析MySQL的INSERT ON DUPLICATE KEY UPDATE语法,详细阐述其通过唯一索引实现“存在即更新,不存在则插入”的原子操作核心逻辑。文章探讨了其在高并发场景下相比传统“先查后改”模式的优势,并提供了批量操作、VALUES()函数应用、性能优化及经典应用场景等高效实践指南,帮助开发者简化代码并大幅提升数据处理性能。

pink7的博客 584

mysql中的 on duplicate key update 的语法详解

mysql "ON DUPLICATE KEY UPDATE" 语法如果在INSERT语句末尾指定了ON DUPLICATE KEY UPDATE,并且插入行后会导致在一个UNIQUE索引或PRIMARY KEY中出现重复值,则在出现重复值的行执行UPDATE;如果不会导致唯一值列重复的问题,则插入新行。 例如,如果列 a 为 主键 或 拥有UNIQUE索引,并且包含值1,则以下两个语句具有相同的...

baidu_24545901的博客 1215

MySQL ON DUPLICATE KEY UPDATE语法与MyBatis实现详解

数据库操作中的'存在即更新,不存在则插入'是常见需求,MySQL通过ON DUPLICATE KEY UPDATE语法原生支持这一功能。该机制基于主键或唯一键冲突检测,自动将INSERT转换为UPDATE操作,大幅简化了业务逻辑实现。在MyBatis框架中,可以通过XML映射文件或注解方式集成这一特性,结合VALUES()函数实现高效的数据同步。这种技术特别适合用户登录统计、商品库存管理等高频更新场景,相比传统先查询后更新的方式,能有效减少数据库交互次数并避免竞态条件。

weixin_33205735的博客 290

深入mysql “ON DUPLICATE KEY UPDATE” 语法的分析

本篇文章是对mysql “ON DUPLICATE KEY UPDATE”语法进行了详细的分析介绍,需要的朋友参考下。 mysql “ON DUPLICATE KEY UPDATE” 语法 如果在INSERT语句末尾指定了ON DUPLICATE KEY UPDATE,并且插入行后会导致在一个UNIQUE索引或PRIMARY KEY中出现重复值,则在出现重复值的行执行UPDATE;如果...

weixin_34129145的博客 131
上一篇: SecureCRT中改变背景色和文字颜色
下一篇: XML和HTML常用转义字符
kobejayandy
博客等级 码龄18年 2853粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值