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>
相关推荐
東雪木8 分钟前
多线程与并发编程 专属复习笔记
java·开发语言·笔记·java面试
adrninistrat0r13 分钟前
Java调用链MCP分析工具
java·python·ai编程
噜噜噜阿鲁~43 分钟前
python学习笔记 | 11.3、面向对象高级编程-多重继承
java·开发语言
春生野草1 小时前
反射、Tomcat执行
java·开发语言
_日拱一卒2 小时前
LeetCode:207课程表
java·数据结构·算法·leetcode·职场和发展
飞翔中文网2 小时前
Java学习笔记之抽象类与接口(设计思想)
java·笔记·学习
qcx232 小时前
【系统学AI】09 Multi-Agent架构(2026版):从学术理论到工业级实践
java·人工智能·架构·multi-agent·claude agent
半旧夜夏3 小时前
【保姆级】微服务组件环境搭建(Docker Compose版)
java·linux·spring cloud·微服务·云原生·容器
云烟成雨TD4 小时前
Spring AI 1.x 系列【33】RAG Advisor 组件与四大分层架构
java·人工智能·spring
JohnYan4 小时前
工作笔记 - PG分组极值
数据库·后端·postgresql