Что синтаксис CTE для удалить из таблицы, а затем вставить в ту же таблицу и возвращать значения из вставки?SQL КТР Синтаксис для DELETE/INSERT строки
Работая на 2 часа сна и что-то не выглядит правильно (кроме того, что это не будет исполнять):
WITH delete_rows AS (
DELETE FROM <some_table> WHERE id = <id_value>
RETURNING *
)
SELECT * FROM delete_rows
UNION
(
INSERT INTO <some_table> (id, text_field)
VALUES (<id_value>, '<text_field_value>')
RETURNING *
)
Ожидаемое поведение является в первую очистить все записи для идентификатора, затем вставьте записи для того же ID (намеренно не upsert) и верните те вставленные записи (а не удаления).
Вставка и удаление не подключены, но вы хотите вернуть все строки из * обеих * операций? –
@ErwinBrandstetter действительно может не заботиться о * delete *, но не был уверен, что это хороший синтаксис, будет иметь дело с этим после того, как я смогу выполнить операции в порядке – vol7ron
Ну, этот последний бит может быть проблемой. Пожалуйста, уточните свой вопрос, определяющий, как * точно * вы ожидаете, что оба будут выполнены «в порядке». –