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

java-replace into详解(SQL)

replace into详解

  • 前言
    • 一、replace into原理
    • 二、replace into的应用注意事项
    • 三、java-mapper批量操作


前言

replace是insert的增强版

一、replace into原理

replace into 首先尝试插入数据到表中,

  1. 如果发现表中已经有此行数据(根据主键或者唯一索引判断)则先删除此行数据,然后插入新的数据。 2. 否则,直接插入新数据

二、replace into的应用注意事项

1)插入数据的表必须有主键或者是唯一索引!否则的话,replace into 会直接插入数据,这将导致表中出现重复的数据。

2)如果数据库里边有这条记录,则直接修改这条记录;如果没有则,则直接插入,在有外键的情况下,对主表进行这样操作时,因为如果主表存在一条记录,被从表所用时,直接使用replace into是会报错的,这和replace into的内部原理是相关(先删除然后再插入)。

3)频繁的REPLACE INTO 会造成新纪录的主键的值迅速增大。总有一天。达到最大值后就会因为数据太大溢出了。就没法再插入新纪录了。数据表满了,不是因为空间不够了,而是因为主键的值没法再增加了。

三、java-mapper批量操作

	<sql id="Base_Column_List">
        plate_no
    </sql>
    <insert id="replaceWhiteList" parameterType="java.util.List">
        replace into white_list
        (<include refid="Base_Column_List"/>)
        VALUES
        <foreach collection="list" item="item" separator=",">
            ( #{item.plateNo} )
        </foreach>
    </insert>

http://www.kler.cn/a/7870.html

相关文章:

  • 检测敏感词功能
  • 用枚举算法解决LeetCode第3348题最小可整除数位乘积II
  • Flink中自定义Source和Sink的使用
  • SQL中的时间类型:深入解析与应用
  • [CKS] K8S Dockerfile和yaml文件安全检测
  • FluentUI使用
  • 面试Interview
  • ChatGPT指令大全(中文版)
  • 【C++】模板进阶(非类型模板参数、类模板的特化和模板的分离编译)
  • asa(苹果Apple Search Ads平台)授权调用接口
  • 【设置应用程序图标-启动图片 Objective-C语言】
  • Vue:初识Vue
  • 数字化可视化大屏:创新与融合的未来
  • 02.数据结构之算法
  • 指针的详细运用介绍(高阶)
  • NIFI大数据进阶_Kafka使用相关说明_实际操作Kafka消费者处理器_来消费kafka数据---大数据之Nifi工作笔记0037
  • Vue3通透教程【九】父子组件通讯一目了然
  • 【从零开始学习 UVM】12.8、UVM RAL(续更) —— UVM RAL Model 实战项目(基于AXI总线的寄存器读写实例)
  • 从前M个字母中取N个的无重复排列 [2*+]
  • SQL VQ13 统计每天总刷题数
  • 基于价值认同的需求侧电能共享分布式交易策略(Matlab代码实现)
  • 大数据=SQL Boy,SQL Debug打破SQL Boy 的僵局
  • HTTP1.1、HTTP2和HTTP3是HTTP协议的三个版本——相同点和不同点
  • LinkedIn领英一、二、三度人脉分别代表什么意思?如何突破人脉限制开启领英社交化客户开发
  • 开心档之C++ 运算符
  • 【机器学习学习笔记】机器学习入门监督学习