MyBatis一条语句(PostgresSql)实现批量新增更新操作ON CONFLICT

MyBatis一条语句(PostgresSql)实现批量新增更新操作ON CONFLICT

ON CONFLICT("主键") 可实现一条语句实现批量新增更新操,但是切记统一批次更新主键不能重复

语句示例

sql 复制代码
INSERT INTO "user" ("user_id", "username")
VALUES
	(35, '李雷'),
	(36, '韩梅梅') 
ON CONFLICT ("user_id")
DO UPDATE SET 
    "user_id" = EXCLUDED."user_id",
	"username" = EXCLUDED."username"

user_id为主键

MyBatis xml实现

xml 复制代码
<insert id="userBatchInsertOrUpdate" parameterType="java.util.List">
	INSERT INTO "user" ("user_id", "username") VALUES
	<foreach collection="list" item="item" separator=",">
		(#{item.user_id}, #{item.username})
	</foreach>
	ON CONFLICT ("user_id")
	DO UPDATE SET 
		"user_id" = EXCLUDED."user_id",
		"username" = EXCLUDED."username"
</insert>
相关推荐
drebander12 分钟前
Maven 构建生命周期与阶段详解
java·maven
web1309332039844 分钟前
JAVA面试之容器
java·开发语言·面试
扫地僧0091 小时前
第18章 不可变对象设计模式(Java高并发编程详解:多线程与系统设计)
java·python·设计模式
洛嘚1 小时前
多数据源配置及使用,在同一个方法下切换数据源。
java·服务器·数据库
LNsupermali2 小时前
力扣.270. 最接近的二叉搜索树值(中序遍历思想)
java·算法·leetcode
gyeolhada2 小时前
2025蓝桥杯JAVA编程题练习Day3
java·数据结构·算法·蓝桥杯
钮钴禄·爱因斯晨2 小时前
赛博算命之 ”梅花易数“ 的 “JAVA“ 实现 ——从玄学到科学的探索
java·开发语言·python
Beekeeper&&P...3 小时前
BCrypt加密密码和md5加密哪个更好一点///jwt和rsa有什么区别//为什么spring中经常要用个r类
java·spring·r语言
吴声子夜歌3 小时前
Linux运维——文件内容查看编辑
java·linux·运维
小锋学长生活大爆炸4 小时前
【教程】docker升级镜像
java·docker·容器·镜像