SQL中replace用法

在 SQL 中,REPLACE INTO 语句的作用是先尝试插入一条新记录。如果插入的记录与表中已有的记录(根据主键或唯一索引进行匹配)有冲突,则会删除冲突的记录,并用新的记录替换掉它。

换句话说,REPLACE INTO 可以防止重复插入相同的记录。它的作用类似于先删除再插入,从而确保每次插入的记录是唯一的。

新增示例:

xml 复制代码
    <insert id="insertTest">
        replace into test_user (id, name, manager_id, salary, age, depart_id, remark, province, content)
        values
        (#{id}, #{name}, #{managerId}, #{salary}, #{age}, #{departId}, #{remark}, #{province}, #{content})
    </insert>

从上面操作可以看出:

第一次:id = 3 的记录不存在,直接插入新记录。Updates: 1

第二次:id = 3 的记录已经存在,它将被删除并用新插入的记录替换。Updates: 2

注意事项:

  1. REPLACE INTO 依赖于表的 主键 或 唯一索引 来判断是否已有重复记录。
  2. 如果存在重复的记录,它会删除并插入新记录,这可能会导致删除和重新插入的性能开销。
  3. 它不会简单地忽略重复记录,而是会删除旧记录再插入新的记录。
相关推荐
10mAh4 分钟前
【Linux】error while loading shared libraries 怎么解决?——ldd、RPATH 与动态链接排错
java·linux·前端
油丶酸萝卜别吃8 分钟前
Redis 布隆过滤器快速实现
数据库·redis·缓存
深念Y9 分钟前
stable-diffusion.cpp 的 FLUX.2 Klein 9B 分步
java·前端·数据库
whn197712 分钟前
oracle 的ora-19633处理
数据库·oracle
阿pin19 分钟前
Java随笔-红黑树
java·python·算法·红黑树
小弥儿21 分钟前
Firecrawl:把整个网页变成 AI 可查询的数据库
数据库·人工智能·学习
我命由我1234526 分钟前
Jetpack Compose - @Preview 注解
android·java·java-ee·android studio·android jetpack·android-studio·android runtime
swordbob30 分钟前
mysql数据库,明明有索引为啥不用
数据库·mysql
为美好的生活献上中指30 分钟前
Spring AI Advisor 深度实战:构建严谨的 AI Agent 拦截链
java·人工智能·spring·advisor·aiagent
ruofu3334 分钟前
如何让docker使用提前下载好的镜像,而不是在线拉取
java·spring cloud·docker