精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

PostgreSQL 17新特性之MERGE語句增強

數(shù)據(jù)庫 PostgreSQL
PostgreSQL 15 提供了 MERGE 語句,它可以基于源表或者查詢結(jié)果更新目標(biāo)表中的數(shù)據(jù)。MERGE 可以在單個語句中實現(xiàn) INSERT、UPDATE 以及 DELETE 操作。

PostgreSQL 15 提供了 MERGE 語句,它可以基于源表或者查詢結(jié)果更新目標(biāo)表中的數(shù)據(jù)。MERGE 可以在單個語句中實現(xiàn) INSERT、UPDATE 以及 DELETE 操作。

PostgreSQL 17 進一步增強了該語句的功能,包括:

  • 支持 RETURNING 子句,可以返回新增、更新或者刪除的數(shù)據(jù)行;
  • 支持 WHEN NOT MATCHED BY SOURCE 操作,用于操作源表中不存在但是目標(biāo)表中存在的數(shù)據(jù)行。

RETURNING 子句

PostgreSQL 支持 INSERT、UPDATE 以及 DELETE 語句的 RETURNING 子句,用于返回新增、更新或者刪除的數(shù)據(jù)行。新版本則為 MERGE 語句提供了相同的功能。

我們先創(chuàng)建一個測試表:

CREATE TABLE test (
    id    INT GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
    tag   VARCHAR(10) NOT NULL UNIQUE,
    posts INT NOT NULL DEFAULT 0
);

然后測試一下 MERGE 語句新增數(shù)據(jù)時的操作:

MERGE INTO test t
USING (VALUES ('pg17')) AS s(tag)
ON t.tag = s.tag
WHEN MATCHED THEN
    UPDATE SET posts = posts + 1
WHEN NOT MATCHED THEN
    INSERT (tag, posts) VALUES (s.tag, 1)
RETURNING *;

  tag   | id | tag      | posts 
--------+----+----------+-------------
 pg17   |  1 | pg17     |           1

對于 INSERT 操作,RETURNING 返回了插入之后的數(shù)據(jù)。同時,RETURNING * 還返回了源表中的數(shù)據(jù)。

接下來是更新數(shù)據(jù)的操作:

MERGE INTO test t
USING (VALUES ('pg17')) AS s(tag)
ON t.tag = s.tag
WHEN MATCHED THEN
    UPDATE SET posts = posts + 1
WHEN NOT MATCHED THEN
    INSERT (tag, posts) VALUES (s.tag, 1)
RETURNING *;
  tag   | id | tag      | posts 
--------+----+----------+-------------
 pg17   |  1 | pg17     |           2

對于 UPDATE 操作,RETURNING 返回了更新之后的數(shù)據(jù)。

如果只需要返回目標(biāo)表中更新后的數(shù)據(jù),可以使用 RETURNING t.*:

MERGE INTO test t
USING (VALUES ('pg17')) AS s(tag)
ON t.tag = s.tag
WHEN MATCHED THEN
    UPDATE SET posts = posts + 1
WHEN NOT MATCHED THEN
    INSERT (tag, posts) VALUES (s.tag, 1)
RETURNING t.*;
 id | tag      | posts 
----+----------+-------------
  1 | pg17     |           2

提示:對于 DELETE 操作,RETURNING 返回刪除之前的數(shù)據(jù)。

除此之外,新版本還增加了一個 merge_action() 函數(shù),用于返回 MERGE 操作類型。函數(shù)的返回值包括 INSERT、UPDATE 以及 DELETE。例如:

MERGE INTO test t
USING (VALUES ('sql'),('pg17')) AS s(tag)
ON t.tag = s.tag
WHEN MATCHED THEN
    UPDATE SET posts = posts + 1
WHEN NOT MATCHED THEN
    INSERT (tag, posts) VALUES (s.tag, 1)
RETURNING t.*, merge_action();
 id | tag      | posts       | merge_action 
----+----------+-------------+--------------
  2 | sql      |           1 | INSERT
  1 | pg17     |           4 | UPDATE

源表提供了 2 條記錄,其中一條在目標(biāo)表中執(zhí)行了 INSERT 操作,另一條執(zhí)行了 UPDATE 操作。

merge_action() 函數(shù)只能用于 MERGE 語句的 RETURNING 字段列表。

WHEN NOT MATCHED BY SOURCE

PostgreSQL 17 還為 MERGE 語句增加了一個新的操作選項:WHEN NOT MATCHED BY SOURCE。該選項可以針對目標(biāo)表中存在、但是源表中不存在的數(shù)據(jù)行進行操作,允許的操作包括 UPDATE、DELETE 或者 DO NOTHING。

例如:

MERGE INTO test t
USING (VALUES ('pg17')) AS s(tag)
ON t.tag = s.tag
WHEN MATCHED THEN
    UPDATE SET posts = posts + 1
WHEN NOT MATCHED THEN
    INSERT (tag, posts) VALUES (s.tag, 1)
WHEN NOT MATCHED BY SOURCE THEN
    DELETE;

SELECT * FROM test;
 id | username | touch_count 
----+----------+-------------
  1 | pg17     |           5

源表只提供了 1 條記錄,目標(biāo)表存在 2 條記錄,我們刪除了目標(biāo)表中多出的一條數(shù)據(jù)( tag = ‘sql’)。

默認(rèn)的 WHEN NOT MATCHED 選項等價于 WHEN NOT MATCHED BY TARGET,用于針對源表中存在、但是目標(biāo)表中不存在的數(shù)據(jù)行進行操作,允許的操作包括 INSERT 或者 DO NOTHING。

以前我們做數(shù)據(jù) ETL 時,考慮到源表數(shù)據(jù)可能被刪除,這時候目標(biāo)表也需要做相同的操作,需要增加額外的 DELETE 語句,新版本 PostgreSQL 只需要一個 MERGE 語句解決增刪改問題,完美!


責(zé)任編輯:華軒 來源: SQL編程思想
相關(guān)推薦

2012-05-18 14:36:50

Fedora 17桌面環(huán)境

2023-06-07 07:30:34

iPadOS 17蘋果

2009-06-16 11:24:00

HTTP增強Java SE 6新特

2009-02-09 09:38:41

新特性MySQL 6.0MySQL

2021-05-21 09:34:40

React React 17前端

2022-09-22 07:03:15

Java 18LTSOracle

2012-05-21 14:16:36

Fedora17新特性

2024-02-04 15:58:53

C++ 17編程代碼

2011-08-19 10:40:27

SQL Server Merge命令

2010-01-11 10:08:14

Oracle 11g

2018-09-19 16:15:18

MySQL直方圖數(shù)據(jù)庫

2013-05-20 10:25:45

vSphere 5.1vMotion

2009-08-03 18:34:43

TuplizersNHibernate

2017-01-09 16:25:55

Android Shortcuts系統(tǒng)

2009-03-10 10:31:26

DB2XMLpureXML

2012-01-12 16:16:20

Fedora 17特性規(guī)劃

2009-08-18 09:37:42

ASP.NET 4.0

2009-07-08 09:47:49

Scala 2.8Scala

2012-07-02 10:43:49

JVMGroovyJava

2011-05-20 09:35:22

JDK7
點贊
收藏

51CTO技術(shù)棧公眾號

久久久久国产精品麻豆ai换脸| 日韩国产一区| 天堂av资源在线观看| 在线一区视频| 综合136福利视频在线| 91夜夜未满十八勿入爽爽影院 | 国产成人自拍视频在线| 亚洲香蕉视频| 亚洲综合视频网| 国产日韩欧美在线播放| 欧美成人精品一区二区免费看片 | 日韩aⅴ视频一区二区三区| 在线黄色av网站| 国产欧美日韩精品一区二区三区| 欧美日韩久久久久久| 欧美日韩大片一区二区三区| 久久亚洲成人av| 久草成人在线| 欧美va天堂va视频va在线| 女性隐私黄www网站视频| 在线观看操人| 亚洲国产精品ⅴa在线观看| av蓝导航精品导航| 亚洲天堂男人网| 一区二区精品| 久久久久久91| 中文字幕人妻一区二| 国产探花一区二区| 精品国产免费人成电影在线观看四季| 亚洲精品自拍网| 亚洲成人不卡| 午夜精品久久一牛影视| 久久久无码中文字幕久...| 91精品国产91久久久久游泳池| 成人99免费视频| 99国产视频| 91片黄在线观看喷潮| 亚洲欧美日本日韩| 韩国福利视频一区| 国产亚洲欧美精品久久久久久| 国产黄色高清视频| 一本一道久久a久久精品蜜桃| 国产一区二区久久精品| 泷泽萝拉在线播放| 2020国产在线| 一区二区三区久久| 熟女熟妇伦久久影院毛片一区二区| 久久久久久久久亚洲精品| 成人动漫视频在线| 国产 高清 精品 在线 a| 99久久亚洲精品日本无码| 蓝色福利精品导航| 久久91亚洲精品中文字幕奶水| 手机免费观看av| 日产精品一区二区| 在线播放精品一区二区三区| 最近中文字幕在线mv视频在线| 天天躁日日躁成人字幕aⅴ| 欧洲另类一二三四区| 欧美 日韩 国产一区| 欧美另类老肥妇| 欧美午夜宅男影院在线观看| 久久国产亚洲精品无码| 自拍视频在线免费观看| 亚洲国产精品t66y| 中文字幕日韩精品一区二区| 日本视频在线观看| www.性欧美| 国语精品免费视频| 色猫av在线| 国内精品在线播放| 亚洲在线观看视频| 亚洲精品久久久久久动漫器材一区 | 91视频免费看| 日本视频一区二区不卡| 97人人在线| 一区二区三区欧美在线观看| 亚洲理论电影在线观看| 中文字幕乱码中文乱码51精品| 欧美在线制服丝袜| 国内精品国产三级国产aⅴ久| 成人ssswww在线播放| 影视一区二区三区| 99久久精品费精品国产一区二区| 久久精品国产综合精品| 国产在线电影| 亚洲视频中文字幕| 婷婷无套内射影院| 免费观看亚洲| 欧美日韩在线亚洲一区蜜芽| 欧美亚洲另类色图| 日韩一级二级| 日韩三级.com| 日本三级黄色网址| 欧美成人精品午夜一区二区| 亚洲韩国青草视频| 中文字幕黄色网址| 精品福利电影| 国产精品私拍pans大尺度在线| 国产高清第一页| 久久久久久久久久久久久女国产乱 | 色哟哟国产精品色哟哟| 国产亚洲欧美在线| 久久人人爽人人爽人人av| 欧美福利在线播放| 精品国产一区二区三区久久久蜜月| 国产精品亚洲综合久久| 亚洲国产精品推荐| 久久久免费看片| 一区三区视频| 国产日韩精品在线播放| 天天操天天舔天天干| 日韩毛片视频在线看| 日韩av一二三四区| 精品久久亚洲| 在线看国产精品| 中日韩黄色大片| 国产精品888| 亚洲欧洲精品在线观看| 免费看黄网站在线观看| 欧美激情一区二区在线| 69堂免费视频| 超碰一区二区三区| 久久成人精品视频| 中文字幕在线视频第一页| 成人免费视频一区| 欧美精品一级二级三级| 黄色片视频在线| 亲子伦视频一区二区三区| 亚洲成人精品久久| 国内毛片毛片毛片毛片毛片| 久久精品一区二区三区中文字幕| 高清国产一区| 国产剧情在线| 欧美美女一区二区在线观看| 欧美人妻一区二区三区| 午夜亚洲影视| 精品日韩美女| av丝袜在线| 亚洲成av人片在线观看香蕉| 欧美黑人精品一区二区不卡| 精品一区二区三区免费播放| 亚洲三区四区| 日韩欧美少妇| 在线成人中文字幕| 国产性生活视频| 国产调教视频一区| 日本黄色三级大片| 亚洲精品进入| 国产精品扒开腿做| 巨骚激情综合| 欧美丝袜丝nylons| 精品国产aaa| 麻豆一区二区三区| 亚洲一区三区在线观看| 日韩大陆av| 精品av综合导航| 精品视频一区二区在线观看| 成人性视频免费网站| 日韩精品在线视频免费观看| 大桥未久女教师av一区二区| 91黄色8090| 日韩欧美电影在线观看| 色欧美日韩亚洲| 国产亚洲精品精品精品| 久久国产三级精品| 超碰10000| 理论片一区二区在线| 91av在线免费观看| 都市激情在线视频| 在线电影欧美成精品| 婷婷伊人五月天| 成人性视频免费网站| 1024精品视频| 国产二区精品| 翡翠波斯猫1977年美国| 久草视频手机在线| 国产精品毛片av| 8090成年在线看片午夜| 国产无套粉嫩白浆在线2022年 | 国产无限制自拍| 欧美黄色a视频| 色综合久久88色综合天天看泰| 蜜桃av中文字幕| 91久久国产最好的精华液| 欧美日韩国产一二三区| 成人手机电影网| 污污视频网站免费观看| 91精品国产自产在线观看永久∴ | 国产一区二区三区电影在线观看| 国产在线精品自拍| 成年人视频免费在线播放| 亚洲男女性事视频| 精品久久在线观看| 日韩欧美在线视频日韩欧美在线视频| 老司机精品免费视频| 国产99久久久国产精品 | 亚洲精品成人| 精品蜜桃一区二区三区| 久久亚洲人体| 97视频在线观看视频免费视频 | 久久久久久久久久久人体| 国产在线高清| 亚洲激情第一页| 国产在成人精品线拍偷自揄拍| 性做久久久久久免费观看| 91无套直看片红桃在线观看| 99久久综合国产精品| 久热精品在线观看视频| 一区二区三区四区五区在线| 久久久久亚洲av无码专区喷水| 女人av一区| 国产一级精品aaaaa看| 成人精品视频在线观看| 国产91九色视频| 24小时免费看片在线观看| 久久深夜福利免费观看| 成年在线观看免费人视频| 亚洲国产精品久久久久| 国产极品久久久| 欧美日韩国产高清一区二区三区| 日韩精品一区二区在线视频 | 亚洲天堂av网| 色丁香婷婷综合久久| 51精品久久久久久久蜜臀| 成人a v视频| 午夜电影一区二区| 欧美黄色一级网站| 成人欧美一区二区三区黑人麻豆 | 91久久国产精品| 精品视频一区二区三区四区五区| 91精品国产高清| 美足av综合网| 欧美另类精品xxxx孕妇| 国产精品扒开做爽爽爽的视频| 丝袜美腿精品国产二区| 国产精品免费播放| 亚洲美女自拍视频| 日本中文字幕一区二区有码在线 | 成人免费看片视频| 精品国产美女a久久9999| 国产成人涩涩涩视频在线观看| 午夜影院一区| 青青青国产精品一区二区| 午夜不卡影院| 日韩免费视频在线观看| 户外露出一区二区三区| 国产精品久久久久久久久久久新郎 | 日韩免费久久| 亚洲欧美综合一区| 日韩精品1区| 一区二区国产日产| 93在线视频精品免费观看| 亚洲午夜久久久影院伊人| 99精品电影| 日韩中文字幕亚洲精品欧美| 午夜精品久久| www.日本在线播放| 国产欧美综合一区二区三区| av免费观看网| 三级欧美在线一区| 男女污污的视频| 国产一区不卡| 午夜视频久久久| 久久人体视频| 狠狠干视频网站| 亚洲日本久久| 综合久久国产| 好吊色一区二区| 欧美日韩亚洲综合在线 | 狠狠色丁香久久婷婷综| 亚洲女人在线观看| 成人av网站在线| 一道本在线观看| 最新日韩av在线| 国产在线综合网| 色婷婷激情综合| 久久网中文字幕| 欧美视频精品一区| 伊人网视频在线| 欧美r级电影在线观看| 日av在线播放| 精品国产依人香蕉在线精品| 免费一级毛片在线观看| 中文字幕亚洲欧美| 色yeye免费人成网站在线观看| 18一19gay欧美视频网站| a∨色狠狠一区二区三区| 91成人免费视频| 九色精品91| 日韩精品久久一区二区| 久久免费高清| 亚洲熟女乱综合一区二区| 国产亚洲制服色| 久草网在线观看| 欧美在线999| 深夜福利视频网站| 日韩在线视频导航| 在线男人天堂| 99视频日韩| 精品欧美久久| 国产中文字幕免费观看| 国产一区福利在线| 亚洲日本精品视频| 亚洲制服欧美中文字幕中文字幕| 中国老头性行为xxxx| 日韩成人xxxx| 天堂av最新在线| 国产一区深夜福利| 亚洲精品国产动漫| 精品国产一区三区| 国产在线播放一区三区四| 国产在线观看h| 欧美日韩国产色| 亚洲a视频在线| 精品国产一区二区三区久久狼5月| 欧美男体视频| 精品国产乱码久久久久久丨区2区 精品国产乱码久久久久久蜜柚 | 久久精品三级| 91玉足脚交白嫩脚丫| 亚洲激情av在线| 国产一区二区三区成人| 夜夜嗨av一区二区三区免费区 | 中文在线观看免费视频| 国产欧美日韩另类一区| 欧美三级韩国三级日本三斤在线观看| 制服丝袜av成人在线看| 888av在线| 国产成人免费av电影| 久操精品在线| 日本黄色三级大片| 久久综合成人精品亚洲另类欧美 | 日韩欧美在线123| 天堂中文8资源在线8| 国产精品久久久久久久久久小说| 欧美久久精品| 人妻少妇精品久久| 成人av影院在线| 国产无套内射又大又猛又粗又爽 | 国产精品网站入口| 国产精品一区二区99| 热久久精品国产| 久久久亚洲午夜电影| 国产高清中文字幕| 国产视频亚洲精品| 毛片免费看不卡网站| 欧美日韩国产综合在线| 久久久水蜜桃av免费网站| 国产熟女高潮一区二区三区 | 九九热最新视频//这里只有精品| 国产精品3区| 亚洲爆乳无码精品aaa片蜜桃| 国产成人免费在线观看不卡| 欧美国产精品一二三| 欧美成人女星排名| av在线最新| 欧美日韩大片一区二区三区| 日韩av一二三| av在线网站免费观看| 亚洲乱码中文字幕| 亚洲高清在线观看视频| 午夜精品理论片| 在线看成人短视频| 网站一区二区三区| 亚洲天堂2016| 欧美一区二区三区激情| 欧美一级淫片播放口| 精品免费一区二区| 永久免费黄色片| 亚洲午夜av在线| 日本大片在线观看| 国产日韩欧美日韩大片| 欧美黄色大片网站| avtt香蕉久久| 欧美日韩视频在线一区二区| 在线观看操人| 久久偷看各类wc女厕嘘嘘偷窃| 日本91福利区| 久久一二三四区| 亚洲欧洲第一视频| 亚洲网站免费| 天堂…中文在线最新版在线| 国产香蕉久久精品综合网| 欧美日韩成人一区二区三区| 奶水喷射视频一区| 91制片厂在线| 亚洲第一精品福利| 欧美成人家庭影院| 2019日韩中文字幕mv| 国产亚洲精品超碰| 精品人妻一区二区三区浪潮在线 | 精品国产一区二区三区久久狼黑人| 国产人与zoxxxx另类91| 成人免费观看cn| 中文字幕在线不卡| 天天色棕合合合合合合合| 国产一区二区丝袜高跟鞋图片| 亚洲二区视频| 国产高清视频免费在线观看| 日韩精品在线电影|