mysql使用replace和on duplicate key update区别
实际业务使用中,有时候会遇到插入数据库,但是如果某个属性(比如:主键)存在,就做更新。通常有两种方式:1、replace into 2、on duplicate key update
但是在使用过程中,发现了两者的区别,整理如下:
replace into :首先尝试插入数据到表中, 1. 如果发现表中已经有此行数据(根据主键或者唯一索引判断)则先删除此行数据,然后插入新的数据。 2. 否则,直接插入新数据。
replace into tbl_name(col_name, ...) values(...)
on duplicate key update:当发生重复值的时候,就执行UPDATE后面的代码
insert into dh_dead_letter(id,topic_code,content) values('2','topic_code','topic_code') on duplicate key update topic_code = values(topic_code), content = values(content);
实际业务场景: 当数据交换任务,进行数据库插入数据时,如果配置的映射列,不是所有映射列,则要使用on duplicate key update只更新或插入部分列的数据,不能使用replace into,否则会把其他列原有的值给删除掉了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
2018-06-04 java对象的访问定位
2018-06-04 java对象是如何创建的
2018-06-04 通过“减少内存”的方式解决内存溢出的问题