Как поместить результат предложения RETURNING
в SELECT
в PostgreSQL?Т.е. я хотел бы, чтобы оператор SELECT
возвращал все, что возвращает RETURNING
.
Я пробовал следующие два синтаксиса, но ни один из них не работает:
(1) SELECT (INSERT INTO ... RETURNING *)
(2) SELECT * FROM (INSERT INTO ... RETURNING *) ...
Вы можете спросить, почему я пытаюсь это сделать, несмотря на то, что RETURNING
уже дает мне желаемый результат?Это потому, что у меня есть структура, использующая два предложения WITH
, и вставка будет во втором, но мне также нужны результаты первого.(См. связанный вопрос .)
Примечание: к сожалению, я не могу предоставить конкретный запрос SQL (потому что он находится в продукте с закрытым исходным кодом), но я думаю, что вопрос достаточно общий, чтобыответственность без этого конкретного запроса.
РЕДАКТИРОВАТЬ Добавлен пример:
Предположим, у нас есть эта таблица:
CREATE TABLE test(id INT, name VARCHAR)
Thisработает:
INSERT INTO test VALUES (1, 'Joe') RETURNING *
Что я пытаюсь сделать, но не работает:
SELECT INSERT INTO test VALUES (1, 'Joe') RETURNING *
SELECT * FROM INSERT INTO test VALUES (1, 'Joe') RETURNING *