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>
相关推荐
迢迢星万里灬1 分钟前
Java求职者面试指南:Spring、Spring Boot、Spring MVC与MyBatis技术点解析
java·spring boot·spring·mybatis·spring mvc·面试指南
代码丰2 分钟前
使用Spring Cloud Stream 模拟生产者消费者group destination的介绍(整合rabbitMQ)
java·分布式·后端·rabbitmq
weixin_4461224614 分钟前
浏览器播放监控画面
java·spring boot
-借我杀死庸碌的情怀-16 分钟前
navicat可视化页面直接修改数据库密码——mysql、postgresql、mangodb等
数据库·mysql·postgresql
lpfasd12318 分钟前
模板方法模式(Template Method Pattern)
java·开发语言·设计模式·模板方法模式
hn小菜鸡1 小时前
LeetCode 2529.正整数和负整数的最大计数
java·算法·leetcode
zh_199951 小时前
Spark面试精讲(上)
java·大数据·数据仓库·python·spark·数据库开发·数据库架构
小猫咪怎么会有坏心思呢1 小时前
华为OD机考-找座位-逻辑分析(JAVA 2025B卷)
java·开发语言·华为od
快乐肚皮1 小时前
Java的Arrays.sort():排序算法与优化分析
java·排序算法·归并排序·快速排序
西洼工作室1 小时前
Spring Boot常用依赖大全:从入门到精通
java·spring boot·后端