Сохранить результат ОБНОВЛЕНИЯ с предложением RETURNING в PLPGSQL - PullRequest
0 голосов
/ 04 марта 2020

В функции plpg sql мне нужно сделать несколько проверок и вернуть некоторые значения на основе этих проверок.

Я могу выполнить SELECT INTO v_variable column FROM table, но то, что мне нужно сохранить, не является результатом SELECT скорее результат UPDATE table SET column = new_value RETURNING check

Есть ли способ сохранить эту проверку в переменной, чтобы позже использовать ее, или просто в переменной OUT, чтобы эта величина возвращалась функцией?

Ответы [ 2 ]

2 голосов
/ 04 марта 2020

Вы можете сохранить значение из предложения RETURNING в переменной, используя INTO, как и для SELECT:

UPDATE table
SET column = new_value
RETURNING check INTO my_variable
1 голос
/ 04 марта 2020

Неважно, если это SELECT, INSERT или UPDATE. Когда вы указываете RETURNING, он работает так же, как и SELECT. Таким образом, вы можете написать:

UPDATE table SET column = new_value RETURNING check INTO <your_variable>

Более того, вы можете использовать результаты в одном запросе с помощью CTE:

WITH updated AS (
    UPDATE table SET column = new_value RETURNING check
)
SELECT check FROM updated ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...