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>
相关推荐
半新半旧4 分钟前
Python的垃圾回收机制
java
越来越无动于衷31 分钟前
企业信息管理系统开发实战:基于 Spring Boot+MyBatis+Thymeleaf
spring boot·后端·mybatis
hhua01232 小时前
MyBatis 的两级缓存机制
缓存·mybatis
一枚小小程序员哈2 小时前
基于springboot的零食商城的设计与实现/零食销售系统的设计与实现
java·spring boot·spring·tomcat·maven
qqxhb2 小时前
零基础数据结构与算法——第六章:算法设计范式与高级主题-设计技巧(上)
java·数据结构·算法·分解·空间换时间·时空平衡
野生技术架构师2 小时前
系统改造:一次系统领域拆分的实战复盘
java·大数据·开发语言
一碗绿豆汤2 小时前
JAVA+AI教程-第四天
java·开发语言·人工智能
YuTaoShao2 小时前
【LeetCode 热题 100】34. 在排序数组中查找元素的第一个和最后一个位置——二分查找
java·数据结构·算法·leetcode
典孝赢麻崩乐急2 小时前
Java学习-----如何创建线程
java·学习
shepherd1113 小时前
从List与Tree相互转换工具类实现中谈谈菜鸟到老鸟的一些思考
java·后端·代码规范