在 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
注意事项:
- REPLACE INTO 依赖于表的 主键 或 唯一索引 来判断是否已有重复记录。
- 如果存在重复的记录,它会删除并插入新记录,这可能会导致删除和重新插入的性能开销。
- 它不会简单地忽略重复记录,而是会删除旧记录再插入新的记录。