当前位置: 首页 > news >正文

mysql INSERT数据覆盖现有元素(若存在)

INSERT...ON DUPLICATE KEY UPDATE的使用

如果指定了ON DUPLICATE KEY UPDATE,并且插入行后会导致在一个UNIQUE索引或PRIMARY KEY中出现重复值,则会更新ON DUPLICATE KEY UPDATE关键字后面的字段值

例如,如果列a被定义为UNIQUE,并且包含值1,则以下两个语句具有相同的效果:

<insert id="insertModel" parameterType="com.ruoyi.flowable.utils.ModelParameters.Model">insert into registered_model(id, modelName,modelCategory) values(#{id},#{modelName},#{modelCategory}) ON DUPLICATE KEY UPDATE modelName = VALUES(modelName),modelCategory = VALUES(modelCategory)</insert>

REPLACE关键字的使用        

  • 使用REPLACE的最大好处就是可以将DELETE和INSERT合二为一,形成一个原子操作。这样就可以不必考虑在同时使用DELETE和INSERT时添加事务等复杂操作了。
  • 在使用REPLACE时,表中必须有唯一索引,而且这个索引所在的字段不能允许空值,否则REPLACE就和INSERT完全一样的。
  • 在执行REPLACE后,系统返回了所影响的行数,如果返回1,说明没有重复的记录,如果返回2,说明有重复记录,系统先DELETE这条记录,然后再INSERT这条记录。

比较

如果主键重复会先删除数据库中原来的记录,插入新纪录。但是数据库删除操作需要维护主键索引,这无疑需要消耗性能。ON DUPLICATE KET QPDATE只是在主键重复时修改所需字段的值,所以不影响主键。维护成本自然相对于replace低

问题:SQL获取第一个表的自增主键并作为另一个表的外键

相关文章:

  • 【MQ01】什么是消息队列?用哪个消息队列?
  • Go语言学习笔记:基础语法和类型
  • 【Java】SpringMVC参数接收
  • 【电商API接口Python实例】100个Python爬虫实例
  • pyspark之Structured Streaming file文件案例1
  • 设备通过GB28181注册到EasyCVR,平台看不到设备信息的排查方法汇总
  • OpenCV第 2 课 OpenCV 环境搭建
  • LabVIEW高级CAN通信系统
  • (M)unity2D敌人的创建、人物属性设置,遇敌掉血
  • 深入Android S (12.0) 探索Framework之输入子系统InputReader的流程
  • notepad++: 插件fingertext 来创建代码块
  • 考研过后你如坐针毡,而有些人因选择中国人民大学与加拿大女王大学金融硕士而乐在其中
  • 网络中黑客攻击使用手段Top25漏洞常见参数,8个WAF绕过,一些用于查找敏感文件的语法
  • Windows ssh登录eNSP交换机
  • 直播录屏工具哪家强?让你的直播更精彩!
  • [rust! #004] [译] Rust 的内置 Traits, 使用场景, 方式, 和原因
  • Bytom交易说明(账户管理模式)
  • Github访问慢解决办法
  • JS专题之继承
  • MySQL常见的两种存储引擎:MyISAM与InnoDB的爱恨情仇
  • nodejs调试方法
  • PHP那些事儿
  • Spring Cloud Feign的两种使用姿势
  • WePY 在小程序性能调优上做出的探究
  • 电商搜索引擎的架构设计和性能优化
  • 诡异!React stopPropagation失灵
  • 开源地图数据可视化库——mapnik
  • 每天一个设计模式之命令模式
  • 硬币翻转问题,区间操作
  • Python 之网络式编程
  • 新海诚画集[秒速5センチメートル:樱花抄·春]
  • # 达梦数据库知识点
  • #1014 : Trie树
  • #我与Java虚拟机的故事#连载03:面试过的百度,滴滴,快手都问了这些问题
  • $var=htmlencode(“‘);alert(‘2“); 的个人理解
  • (delphi11最新学习资料) Object Pascal 学习笔记---第5章第5节(delphi中的指针)
  • (MonoGame从入门到放弃-1) MonoGame环境搭建
  • (非本人原创)史记·柴静列传(r4笔记第65天)
  • (附源码)spring boot北京冬奥会志愿者报名系统 毕业设计 150947
  • (汇总)os模块以及shutil模块对文件的操作
  • (简单有案例)前端实现主题切换、动态换肤的两种简单方式
  • (四)docker:为mysql和java jar运行环境创建同一网络,容器互联
  • (一) springboot详细介绍
  • (转)大型网站架构演变和知识体系
  • (转)负载均衡,回话保持,cookie
  • .NET CORE 第一节 创建基本的 asp.net core
  • .net core Swagger 过滤部分Api
  • .NET Core引入性能分析引导优化
  • .net获取当前url各种属性(文件名、参数、域名 等)的方法
  • .NET开源项目介绍及资源推荐:数据持久层 (微软MVP写作)
  • .Net通用分页类(存储过程分页版,可以选择页码的显示样式,且有中英选择)
  • .net中我喜欢的两种验证码
  • @RequestParam,@RequestBody和@PathVariable 区别
  • @Tag和@Operation标签失效问题。SpringDoc 2.2.0(OpenApi 3)和Spring Boot 3.1.1集成
  • [ 云计算 | AWS ] 对比分析:Amazon SNS 与 SQS 消息服务的异同与选择