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>
相关推荐
花月C1 分钟前
基于WebSocket的 “聊天” 业务设计与实战指南
java·网络·后端·websocket·网络协议
hongtianzai2 分钟前
Laravel7.x十大核心特性解析
java·c语言·开发语言·golang·php
计算机学姐8 分钟前
基于SpringBoot的校园二手交易系统
java·vue.js·spring boot·后端·spring·tomcat·intellij-idea
夕珩9 分钟前
Java 排序算法详解:冒泡排序、选择排序、堆排序
java·算法·排序算法
9523614 分钟前
初识多线程
java·开发语言·jvm·后端·学习·多线程
hongtianzai18 分钟前
Laravel9.X核心特性全解析
android·java·数据库
dovens20 分钟前
从MySQL迁移到PostgreSQL的完整指南
数据库·mysql·postgresql
小陈工21 分钟前
2026年3月22日技术资讯洞察:数据库优化进入预测时代,网络安全威胁全面升级
java·开发语言·数据库·python·安全·web安全·django
小胖java21 分钟前
养老院管理系统
java·spring boot
爱丽_22 分钟前
synchronized到底锁的是什么:对象头 Mark Word、Monitor、锁升级与排查
java