当前位置: 首页 > article >正文

MyBatis一条语句(PostgresSql)实现批量新增更新操作ON CONFLICT

MyBatis一条语句(PostgresSql)实现批量新增更新操作ON CONFLICT

ON CONFLICT(“主键”) 可实现一条语句实现批量新增更新操,但是切记统一批次更新主键不能重复

语句示例

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实现

<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>

http://www.kler.cn/a/535491.html

相关文章:

  • 金蝶云星空k3cloud webapi报“java.lang.Class cannot be cast to java.lang.String”的错误
  • 深度整理总结MySQL——SQL的执行顺序和流程
  • 如何理解多态,以及由此引出的抽象类和纯虚函数
  • JVM为什么要指针压缩?为什么能指针压缩?原理是什么?
  • C++中命名空间(namespace)
  • Windows 中学习Docker环境准备3、在Ubuntu中安装Docker
  • 2024最新版Node.js详细安装教程(含npm配置淘宝最新镜像地址)
  • CTF SQL注入学习笔记
  • 第七天 开始学习ArkTS基础,理解声明式UI编程思想
  • vue3-响应式 shallowRef
  • 网络安全 | 零信任架构:重构安全防线的未来趋势
  • 【2025最新计算机毕业设计】基于SSM健身俱乐部管理系统【提供源码+答辩PPT+文档+项目部署】
  • 【Vitest】单元测试
  • 【STM32】蓝牙模块数据包解析
  • 【华为OD-E卷 - 108 最大矩阵和 100分(python、java、c++、js、c)】
  • crewai框架第三方API使用官方RAG工具(pdf,csv,json)
  • 高斯溅射和GIS融合之路- 将splat文件切片成3dtiles
  • YOLOv11-ultralytics-8.3.67部分代码阅读笔记-tasks.py
  • E4982A,keysight是德科技台式LCR表
  • 通义灵码在跨领域应用拓展之物联网篇
  • OSPF基础(1):工作过程、状态机、更新
  • Web 音视频(四)在浏览器中处理音频
  • 基于docker部署kafka-3.8.0版本,并开启SASL认证模式
  • C语言:深入了解指针3
  • C# 异常处理全解析
  • 3.【BUUCTF】XSS-Lab1