MySQL replace into 和 on duplicate key update 区别
1 replace into
replace into 跟 insert 功能类似,不同点在于:replace into 首先尝试插入数据到表中, 1. 如果发现表中已经有此行数据(根据主键或者唯一索引判断)则先删除此行数据,然后插入新的数据。 2. 否则,直接插入新数据。
replace into 会给未显式指定列的值覆盖为新的列默认值
-- 创建测试表 create table T20220429_ReplaceInto ( Id int primary key comment 'Id', Name varchar(20) comment '名字', Age int comment '年龄', Addr varchar(20) comment '地址', Msg varchar(20) DEFAULT '默认值' );
执行 replace into
2 on duplicate key update
如果在INSERT语句末尾指定了ON DUPLICATE KEY UPDATE,并且插入行后会导致在一个UNIQUE索引或PRIMARY KEY中出现重复值,则在出现重复值的行执行UPDATE;如果不会导致唯一值列重复的问题,则插入新行。
-- 创建测试表 create table T20220429_OnDuplicateKeyUpdate ( Id int primary key comment 'Id', Name varchar(20) comment '名字', Age int comment '年龄', Addr varchar(20) comment '地址', Msg varchar(20) DEFAULT '默认值' ); insert into T20220429_OnDuplicateKeyUpdate(Id,Name,Age,Addr,Msg) values(1,'n1',10,'a1','Msg1');

分类:
MySQL
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下