在网上看到很多关于psql的merge方法,很多都是用函数function来实现的,其实在pgsql10以后可以通过sql来直接实现merge方法

具体语法如下:

  with "别名" as (update 表名 set 字段名1= '更新的值',字段名2='更新的值' where 主键=需要更新的主键的值 returning *)

insert into 表名(字段名1,字段名2) select '更新的值','更新的值' where (select count(*) from 别名) = 0

我自己写了个例子:

create table test(
id serial primary key,
aa varchar(10),
bb varchar(10)
);
insert into test(aa,bb) values('qw','rt');
insert into test(aa,bb) values('vb','ad');
insert into test(aa,bb) values('er','fg');

with "te" as (update test set aa = 'test',bb='test' where id =4 returning *)
insert into test(aa,bb) select 'test','test' where (select count(*) from te) = 0

转载于:https://www.cnblogs.com/jinhou/p/9077718.html

pgsql merge方法相关推荐

  1. DataSet 的 Merge 方法

    是MSDN中对Merge方法使用说明: Merge 方法用于合并架构大致相似的两个 DataSet 对象.合并在客户端应用程序上通常用于将数据源中最近的更改合并到现有的 DataSet 中.这使客户端 ...

  2. DataTable的Merge方法和添加datatable到dataset

    DataTable的Merge方法 Merge方法是将两个结构相似的datatable合并成一个datatable: 实例代码:             //create table1         ...

  3. merge java方法_Java HashMap merge() 方法

    merge() 方法会先判断指定的 key 是否存在,如果不存在,则添加键值对到 hashMap 中. 语法 merge() 方法的语法为: hashmap.merge(key, value, rem ...

  4. Oracle PL/SQL编程学习笔记:Merge方法的使用

    Oracle11g的Merge很强大! 1 create or replace procedure BRANCE_REPORT_MERGE is 2 3 begin 4 Merge into BRAN ...

  5. ubuntu下git使用Beyond Compare来做diff和merge方法

    之前我写过一篇文章, git使用vimdiff来做diff比较的 ,原文链接: https://blog.csdn.net/ballack_linux/article/details/56670311 ...

  6. Cornerstone的Merge方法

    网上看了一些文档发现时错的,这里给大家介绍一下吧: 点击要合并到的working copies,然后点击顶部的merge按钮: 之后选择Cherry Pick Changes选项: merge fro ...

  7. 【hibernate merge】session1.merge(T entity)方法的含义和update方法的区别

    注意:  MERGE语句是SQL语句的一种.在SQL Server.Oracle数据库中可用,MySQL.PostgreSQL中不可用. 1>session1.merge(T entity) 合 ...

  8. as_hash ruby_Hash.merge(other_hash)方法与Ruby中的示例

    as_hash ruby Hash.merge(other_hash)方法 (Hash.merge(other_hash) Method) In this article, we will study ...

  9. Hibernate之Session merge与update方法

    2019独角兽企业重金招聘Python工程师标准>>> 项目中使用Hibernate时报了一个异常:org.hibernate.NonUniqueObjectException;经从 ...

最新文章

  1. 块状元素、内联元素(又叫行内元素)和内联块状元素
  2. @html.ActionLink的几种参数格式
  3. 频谱仪使用方法图解_地暖分水器原理及使用方法介绍,图解
  4. 【Hadoop学起来】分布式Hadoop的搭建(Ubuntu 17.04)
  5. 3-3HDFS架构详解
  6. 国内外研究主页集合:计算机视觉-机器学习-模式识别
  7. 应用程序进程启动过程
  8. 人工智能与物联网安全:以子之矛,攻子之盾
  9. python数据库管理软件_MySQL管理工具MySQL Utilities — 介绍与安装(1)
  10. UVa 1635 无关的元素(唯一分解定理+二项式定理)
  11. 关于架设流媒体服务器与DRM加密问题
  12. 《js读取本地json文件》及浏览器跨域设置、《js保存json到本地》
  13. 图片自适应屏幕大小的css写法
  14. db2import详解_DB2中import详解 - yishueitian326的日志 - 网易博客
  15. 软件设计师-计算机网络(刷题笔记)
  16. 基于Python的GUI图形用户界面编程
  17. 信创-东方通和达梦适配
  18. Robust stochastic frontier analysis
  19. 关于华为实习的一两点感触
  20. 【latex】参考文献bbl错误,Package inputenc Error,Misplaced alignment

热门文章

  1. java 选取topn_取Oracle中实现TOPN,选取前几条记录
  2. java的语法基础_JAVA语法基础1(入门手册)
  3. 蓝桥集训之BFS、DFS和链式前向星
  4. 五大服务顺序_百度大脑5.0技术干货:详解飞桨五大优势,鸿鹄芯片架构细节
  5. Yarn无法查看日志: Aggregation may not be complete, Check back later or try the nodemanager at xxxx:xxxx
  6. [tensorflow]tensorflow 2.1 函数API(The Functional API)
  7. 传统版生产者消费者模式2.0
  8. 深入理解Java的分级引用模型
  9. linux 远程脚本批量 scopy文件
  10. day01初步接触python和环境的安装