2025年9月25日: PostgreSQL 18 釋出!
支援的版本: 當前 (18) / 17
開發版本: devel

9.23. Merge 支援函式 #

PostgreSQL 包含一個 merge 支援函式,該函式可用於 MERGE 命令的 RETURNING 列表中,以識別為每行執行的操作;請參閱 表 9.68

表 9.68. Merge 支援函式

函式

描述

merge_action ( ) → text

返回為當前行執行的 merge 操作命令。該命令將是 'INSERT''UPDATE''DELETE'


示例:

MERGE INTO products p
  USING stock s ON p.product_id = s.product_id
  WHEN MATCHED AND s.quantity > 0 THEN
    UPDATE SET in_stock = true, quantity = s.quantity
  WHEN MATCHED THEN
    UPDATE SET in_stock = false, quantity = 0
  WHEN NOT MATCHED THEN
    INSERT (product_id, in_stock, quantity)
      VALUES (s.product_id, true, s.quantity)
  RETURNING merge_action(), p.*;

 merge_action | product_id | in_stock | quantity
--------------+------------+----------+----------
 UPDATE       |       1001 | t        |       50
 UPDATE       |       1002 | f        |        0
 INSERT       |       1003 | t        |       10

請注意,此函式只能在 MERGE 命令的 RETURNING 列表中使用。在查詢的任何其他部分使用它都會導致錯誤。

提交更正

如果您在文件中發現任何不正確、與您對特定功能的體驗不符或需要進一步澄清的內容,請使用 此表單 報告文件問題。