前言

Oracle迁移PG过程中遇到Merge语法的处理。PG 11开始支持Merge语法,但项目使用PG 10,所以要对代码中的Merge语句进行重写。

什么是Merge?

Oracle数据库MERGE语句_周末未至-CSDN博客_merge oracle

PG实现Merge的最佳实践

Best practices for migrating Oracle database MERGE statements to Amazon Aurora PostgreSQL and Amazon RDS PostgreSQL | AWS Database Blog

项目中Merge的情况比较简单,最后我采用了INSERT...ON CONFLICT...重写

如Oracle的Merge语句

MERGE INTO PRODUCT prd
USING PRODUCT_DELTA src
ON (prd.product_name = src.product_name AND prd.product_type = src.product_type )WHEN MATCHED THENUPDATE SETprd.unit_price = src.unit_price,modified_date  = SYSDATEWHEN NOT MATCHED THENINSERT(product_name, product_type, unit_price, modified_date)VALUES(src.product_name, src.product_type, src.unit_price, SYSDATE);

重写成Insert...on conflict...

INSERT INTO PRODUCT(product_name, product_type, unit_price, modified_date)SELECT   src.product_name,src.product_type,src.unit_price,now() modified_dateFROM ( SELECTproduct_name,product_type,unit_priceFROM PRODUCT_DELTA) srcON CONFLICT(product_name, product_type)DO UPDATESETunit_price   = excluded.unit_price,modified_date = excluded.modified_date;

Postgres实现Merge相关推荐

  1. SQL优化(一) Merge Join vs. Hash Join vs. Nested Loop

    本文介绍了Merge Join,Hash Join,Nested Loop这三种数据库Join方式的工作原理,并通过实验进一步说明了其适用范围. 原创文章,转载请务必将下面这段话置于文章开头处(保留超 ...

  2. activiti中的bug列表

    分享牛原创(尊重原创 转载对的时候第一行请注明,转载出处来自分享牛http://blog.csdn.net/qq_30739519) Bug [ACT-1968] - Custom Database ...

  3. 理解原理的重要性 - 论PostgreSQL merge join 成本评估陷阱 含case

    背景 PostgreSQL支持三种JOIN的方法,nestloop, merge, hash. 这三种JOIN方法的差别和原理可以参考 https://www.postgresql.org/docs/ ...

  4. postgres 把一个表的值转成另一个表的字段名_Postgres索引那些事

    本文转自Greenplum中文社区官方网站:greenplum.cn: 最实时最权威的Greenplum技术文档.博客,以及热点新闻,请关注greenplum.cn: Postgres内部提供了很多种 ...

  5. PostgreSQL类似Oracle MERGE功能的实现

    概述 MERGE语句是Oracle9i新增的语法,用来合并UPDATE和INSERT语句.通过MERGE语句,根据一张表或子查询的连接条件对另外一张表进行查询,连接条件匹配上的进行UPDATE,无法匹 ...

  6. 如何看懂Postgres的执行计划

    如何看懂Postgres的执行计划test=# insert into test select id from (select generate_series(1,10000000))ids(id); ...

  7. CentOS下postgres怎么恢复数据库.bak文件_数据架构选型必读:4月数据库产品技术解析...

    本期要点 DB-Engines数据库排行榜 一.RDBMS MySQL发布8.0.20版本,5.6版本于2021年2月停止更新 DB2发布11.5.2版本,且看容器化是否可为DB2注入新活力 Post ...

  8. Bookstore Postgres数据库项目

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/qq_41099561/article/ ...

  9. 为PostgreSQL讨说法 - 浅析《UBER ENGINEERING SWITCHED FROM POSTGRES TO MYSQL》

    背景 最近有一篇文档,在国外闹得沸沸扬扬,是关于UBER使用mysql替换postgres原因的文章. 英文原文 https://eng.uber.com/mysql-migration/ 来自高可用 ...

最新文章

  1. python程序不出结果_超详细的Python入门教程,1小时就可以学会
  2. 全球及中国5-氯-2-羟基苯甲酸产业专项调研与投资潜力预测报告2022-2028年
  3. html ctf查找,Web CTF 解题思路总结—南京邮电大学攻防平台writeup
  4. Google Cloud Platform中没有Active Directory域的可用性组
  5. 《机器学习实战》学习总结(四)逻辑回归原理
  6. Spring Boot 2.2 正式发布,大幅性能提升 Java 13 支持 | CSDN 博文精选
  7. tensorflow精进之路(二十)——使用slim模型库训练自己的数据
  8. java求根号值_Java-求根号n(示例代码)
  9. 详解 CatBoost 原理
  10. 四月一个晴朗的早晨,遇见一个百分之百的女孩
  11. Vue 作者尤雨溪,引路中国程序开发
  12. Python爬虫QQ音乐数据采取,公开数据获取案例之一(1),腾讯Python开发面试记录
  13. 使用f031的SPI单引脚(MOSI)+DMA实现WS2812B三色灯的级联控制
  14. mlp原来是这么回事
  15. 用python去除SQL中的注释
  16. 24、新增商铺 - 小程序端开发 - 微擎小程序模块应用开发
  17. java 正确的表达式_JAVA程序设计课程作业,二、多选题1.指出正确的表达式A.double a=1.0B.Double a=new Dou...
  18. VGA系列之一:VGA显示网络图片
  19. “浅薄”绝不该是中国程序员的性格特征
  20. [详解]Twitter开源分布式自增ID算法snowflake,附演算验证过程

热门文章

  1. Rabbitmq 在项目中的使用
  2. OFDM信号是一种广泛应用的调制技术,其优点在于比传统的单载波调制技术具有更好的频谱利用率和抗干扰性能。然而,OFDM信号的峰均功率比(PAPR)问题一直是制约...
  3. 【金融科技】企业融资的基础知识
  4. CDH/CM:创建集群多节点,通过 VMware 安装 Centos 7 虚拟机 CentOS Linux release 7.6.1810
  5. Numpy线性代数-numpy.inner()
  6. 盘点微软 .NET 技术八年发展历程转
  7. Fullcalendar 文档
  8. #恭喜闲侃群通过人肉的方式对接了ChatGPT
  9. jenkins 操作
  10. 分词工具 java_ICTCLA中科院分词工具用法(java)