openGauss学习笔记-170 openGauss 数据库运维-备份与恢复-导入数据-更新表中数据-使用合并方式更新和插入数据

文章目录

    • openGauss学习笔记-170 openGauss 数据库运维-备份与恢复-导入数据-更新表中数据-使用合并方式更新和插入数据
      • 170.1 前提条件
      • 170.2 操作步骤

openGauss学习笔记-170 openGauss 数据库运维-备份与恢复-导入数据-更新表中数据-使用合并方式更新和插入数据

在用户需要将一个表中所有的数据或大量的数据添加至现有表的场景下,openGauss提供了MERGE INTO语句通过两个表合并的方式高效地将新数据添加到现有表。

MERGE INTO语句将目标表和源表中数据针对关联条件进行匹配,若关联条件匹配时对目标表进行UPDATE,关联条件不匹配时对目标表执行INSERT。此方法可以很方便地用来将两个表合并执行UPDATE和INSERT,避免多次执行。

170.1 前提条件

进行MERGE INTO操作的用户需要同时拥有目标表的UPDATE和INSERT权限,以及源表的SELECT权限。

170.2 操作步骤

  1. 创建源表products,并插入数据。

    openGauss=# CREATE TABLE products 
    ( product_id INTEGER, product_name VARCHAR2(60), category VARCHAR2(60) 
    );openGauss=# INSERT INTO products VALUES 
    (1502, 'olympus camera', 'electrncs'),
    (1601, 'lamaze', 'toys'),
    (1666, 'harry potter', 'toys'),
    (1700, 'wait interface', 'books'); 
    
  2. 创建目标表newproducts,并插入数据。

    openGauss=# CREATE TABLE newproducts 
    ( product_id INTEGER, product_name VARCHAR2(60), category VARCHAR2(60) 
    ); openGauss=# INSERT INTO newproducts VALUES 
    (1501, 'vivitar 35mm', 'electrncs'),
    (1502, 'olympus ', 'electrncs'),
    (1600, 'play gym', 'toys'),
    (1601, 'lamaze', 'toys'), 
    (1666, 'harry potter', 'dvd'); 
    
  3. 使用MERGE INTO 语句将源表products的数据合并至目标表newproducts。

    MERGE INTO newproducts np    
    USING products p    
    ON (np.product_id = p.product_id )    
    WHEN MATCHED THEN     UPDATE SET np.product_name = p.product_name, np.category = p.category 
    WHEN NOT MATCHED THEN     INSERT VALUES (p.product_id, p.product_name, p.category) ; 
    

    上述语句中使用的参数说明,请见表1。更多信息,请参见MERGE INTO

    表 1 MERGE INTO语句参数说明

    参数说明举例
    INTO 子句指定需要更新或插入数据的目标表。目标表支持指定别名。**取值:newproducts np说明:**名为newproducts,别名为np的目标表。
    USING子句指定源表。源表支持指定别名。**取值:products p说明:**名为products,别名为p的源表。
    ON子句指定目标表和源表的关联条件。关联条件中的字段不支持更新。**取值:np.product_id = p.product_id说明:**指定的关联条件为,目标表newproducts的product_id字段和源表products的product_id字段相等。
    WHEN MATCHED子句当源表和目标表中数据针对关联条件可以匹配上时,选择WHEN MATCHED子句进行UPDATE操作。仅支持指定一个WHEN MATCHED子句。WHEN MATCHED子句可缺省,缺省时,对于满足ON子句条件的行,不进行任何操作。若目标表中存在分布列,则该列不支持更新。**取值:WHEN MATCHED THEN UPDATE SET np.product_name = p.product_name, np.category = p.category说明:**当满足ON子句条件时,将目标表newproducts的product_name、category字段的值替换为源表products相对应字段的值。
    WHEN NOT MATCHED子句当源表和目标表中数据针对关联条件无法匹配时,选择WHEN NOT MATCHED子句进行INSERT操作。仅支持指定一个WHEN NOT MATCHED子句。WHEN NOT MATCHED子句可缺省。不支持INSERT子句中包含多个VALUES。WHEN MATCHED和WHEN NOT MATCHED子句顺序可以交换,可以缺省其中一个,但不能同时缺省。**取值:**WHEN NOT MATCHED THENINSERT VALUES (p.product_id, p.product_name, p.category)**说明:**将源表products中,不满足ON子句条件的行插入目标表newproducts。
  4. 查询合并后的目标表newproducts。

    SELECT * FROM newproducts;
    

    返回信息如下:

     product_id |  product_name  | category
    ------------+----------------+-----------1501 | vivitar 35mm   | electrncs1502 | olympus camera | electrncs1666 | harry potter   | toys1600 | play gym       | toys1601 | lamaze         | toys1700 | wait interface | books
    (6 rows)
    

👍 点赞,你的认可是我创作的动力!

⭐️ 收藏,你的青睐是我努力的方向!

✏️ 评论,你的意见是我进步的财富!

图片

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/290190.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C和指针之动态内存分配之编程练习4

1、问题 4.编写一个程序&#xff0c;按照下图中的样子创建数据结构&#xff0c;最后三个对象都是动态分配的结构。第一个对象则可能是一个静态的指向结构的指针。你不必使这个程序过于全面--我们将在下一章讨论这个结构。 2、代码实现 #include <stdio.h> #include <s…

.NET 6 攻略大全(四)

点击上方蓝字关注我们&#xff08;本文阅读时间&#xff1a;15分钟)接上篇内容&#xff0c;本篇文章将介绍&#xff1a;DependentHandle 现已公开、RyuJIT、即用型代码/Crossgen 2、.NET 诊断&#xff1a;EventPipe、SDK 的相关攻略。 DependentHandle 现已公开该 DependentHan…

[No000022]他们说:得诺贝尔奖到底有多难?

转载于:https://www.cnblogs.com/Chary/p/No000022.html

java操作redis简单学习3

2019独角兽企业重金招聘Python工程师标准>>> package com.hanchao.testredis;import java.io.File; import java.util.ArrayList; import java.util.List; import java.util.Set;import redis.clients.jedis.Jedis;import com.alibaba.fastjson.JSON; import com.al…

Xamarin效果第三篇之手机底部弹窗

前面一篇文章把基本的大框架搞定了,这不再逐个去实现里面的细节;今天主要是分享点击了CollectionView内的点点点然后从手机底部弹出一个可以交互的窗口;直接看看最终实现的效果:作为初来乍到的小萌新只能求助万能的群友让大佬们给指条光明通畅的大道,不然容易跑偏;最终给的方向…

自定义sql_一个简单易用的开源BI软件,专为SQL用户设计的开源库

poli一个易于使用的SQL报告应用程序&#xff0c;专为SQL爱好者而设计。SQL中的电源数据分析&#xff0c;可获得更快的业务洞察力。特性⚡️ 自托管和轻松设置平台独立的Web应用程序 单个JAR文件单个SQLite DB文件。在5分钟内启动并运行。连接任何支持JDBC驱动程序的数据库Postg…

echarty轴自定义显示不全_表格打印不全怎么办?这招超简单!

私信回复关键词【福利】~获取丰富办公资源&#xff0c;助你高效办公早下班&#xff01;大家好&#xff0c;我是小E~最近&#xff0c;秋叶 Excel 学习班花生 同学&#xff0c;从同事那里收到了一份开会要用的表格&#xff0c;需要马上就要打印出来。会议主题是&#xff0c;从五个…

Xcode命令行生成Bitcode静态库

近两三年一直在做静态库开发 1、在Xcode工程中创建静态库的Target&#xff0c;最初是手动Build出真机的.a文件&#xff0c;模拟器的.a文件&#xff0c;然后再用命令行合并 2、后来一些特殊的开发者&#xff0c;要求加入特殊的功能&#xff0c;或者开放特殊的接口和属性&#xf…

如何优雅地处理 EF Core 异常

前言当我们在使用 EF Core 保存数据时&#xff0c;可能会出现问题&#xff0c;比如插入重复的值&#xff0c;这时我们会收到DbUpdateException&#xff1a;如果把内部异常信息直接返回给客户&#xff0c;这样不太友好&#xff0c;同时也会暴露数据库细节。如何更优雅地处理这些…

利用 VMware vRealize - 构建和优化云管理

2019独角兽企业重金招聘Python工程师标准>>> 利用 VMware vRealize - 构建和优化云管理 VMware vCloud Suite 5.8是新一代基于软件定义数据中心架构构建与管理vSphere私有云的一体化产品&#xff0c;可支持各企业提升效率、控制性与灵活性&#xff0c;实现关键性的I…

NOIP2012模拟试题【奶牛晒衣服】

1&#xff0e;奶牛晒衣服(dry) 【问题描述】 在熊大妈英明的带领下&#xff0c;时针和它的同伴生下了许多牛宝宝。熊大妈决定给每个宝宝都穿上可爱的婴儿装。于是&#xff0c;为牛宝宝洗晒衣服就成了很不爽的事情。 圣人王担负起了这个重任。洗完衣服后&#xff0c;你就要弄干衣…

PYTHON REQUESTS的安装与简单运用

PYTHON REQUESTS的安装与简单运用 2013.07.09强烈推荐&#xff01;requests官方文档已有了中文版&#xff0c;请见http://cn.python-requests.org/zh_CN/latest/ 。 requests是python的一个HTTP客户端库&#xff0c;跟urllib&#xff0c;urllib2类似&#xff0c;那为什么要用re…

7. 堪比JMeter的.Net压测工具 - Crank 总结篇 - crank带来了什么

1. 前言通过上面的学习&#xff0c;我们已经了解清楚crank的职责以及作用&#xff0c;那么我们重新回来思考一下&#xff0c;crank能为我们带来什么&#xff1f;2. Crank带来了什么&#xff1f;为分布式压测提供了解决方案、可以模拟更高强度的压测单机压测最多提供65535&#…

里rust怎么找蓝图_Rust错误处理

错误处理是程序开发中必不可少的一个环节&#xff0c;在Rust中&#xff0c;错误分成两个类别&#xff1a;可恢复错误和不可恢复错误。 可恢复错误&#xff1a;比如说未找到文件&#xff0c;Rust中用Result<T,E>来实现 不可恢复错误&#xff1a;比如数组访问越界&#xff…

转载牛X文章

2019独角兽企业重金招聘Python工程师标准>>> Java中有关Null的9件事&#xff1a; http://www.importnew.com/14229.html 深入理解java异常处理机制&#xff1a; http://blog.csdn.net/hguisu/article/details/6155636 Android JNI知识简介&#xff1a; http://blog.…

internet访问局域网内部方法之----------路由器端口映射

很多人每天都问为什么要端口映射&#xff1f;例如:通过路由器上网的&#xff0c;网站自己可以访问&#xff0c;但是别人就不能&#xff1b;输入127.0.0.1可以访问&#xff0c;别人还是看不到&#xff1b;输入localhost可以看到&#xff0c;但是别人就是看不到&#xff0c;气人啊…

Xamarin效果第四篇之CollectionView子项右侧布局

前面基于PopupPage然后实现了手机底部弹窗;今天再次基于他从手机右侧弹出一个可以交互的窗口;直接看看最终实现的效果:右侧弹窗不是重点主角是排行榜:我还是直接使用CollectionView然后对于头像那一块还是CollectionView然后通过修改他的子项和Header模板然后旋转让子项从右侧布…

java读取csv文件

2019独角兽企业重金招聘Python工程师标准>>> CSV其实就是COMMA SEPARATED VALUE的缩写。在开发中用Java操作csv文件有专门的的API叫javacsv.jar javacsv.jar下载地址&#xff1a; http://sourceforge.net/project/showfiles.php?group_id33066 package com.syc.tes…

两款JSON类库Jackson与JSON-lib的性能对比(新增第三款测试)

本篇文章主要介绍了"两款JSON类库Jackson与JSON-lib的性能对比(新增第三款测试)"&#xff0c;主要涉及到两款JSON类库Jackson与JSON-lib的性能对比(新增第三款测试)方面的内容&#xff0c;对于两款JSON类库Jackson与JSON-lib的性能对比(新增第三款测试)感兴趣的同学可…

子窗体菜单合并到父窗体菜单的解决办法

系统中既有父窗体又有子窗体&#xff0c;子窗体添加下拉菜单&#xff0c;运行时子窗体的菜单会合并到父窗体的菜单中&#xff0c;解决办法是&#xff0c;将子窗体菜单控件的AllowMerge属性设为false。