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>
相关推荐
旷野本野2 小时前
【Java】Maven
java·开发语言·maven
坊钰2 小时前
【MySQL 数据库】数据类型
java·开发语言·前端·数据库·学习·mysql·html
药尘师2 小时前
idea运行tomcat项目,很慢的问题
java·ide·intellij-idea
Kale又菜又爱玩2 小时前
Sentinel全面解析与实战教程
java·spring·微服务·sentinel·springboot·springcloud
唐人街都是苦瓜脸2 小时前
SpringBoot的简单介绍
java·spring boot·后端
2401_874275172 小时前
微服务。1 微服务
java·数据库·微服务
菜鸟起航ing2 小时前
【Java面试系列】Spring Boot微服务架构下的分布式事务处理与Seata框架实现原理详解 - 3-5年Java开发必备知识
java·spring boot·微服务·seata·分布式事务
xq5148632 小时前
Spring Boot 自动装配原理
java·spring boot·后端
网安小陈3 小时前
【网安】处理项目中的一些常见漏洞bug(java相关)
java·开发语言·数据库·安全·web安全·网络安全·bug
咖啡里的茶i4 小时前
随机产生4位随机码(java)
java