9.23. Функции поддержки MERGE #

PostgreSQL включает функцию поддержки MERGE, которую можно использовать в списке RETURNING команды MERGE, чтобы определить действие, выполняемое для каждой строки; см. Таблицу 9.66.

Таблица 9.66. Функции поддержки 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

Обратите внимание, что эта функция может использоваться только в списке RETURNING команды MERGE. Использование её в любой другой части запроса не допускается.

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy