[Uitbreiden op het antwoord van dvv]
U kunt als volgt naar een bestaande tabel gaan. Voor een niet-overeenkomend schema moet u kolommen specificeren.
WITH moved_rows AS (
DELETE FROM <original_table> a
USING <other_table> b
WHERE <condition>
RETURNING a.* -- or specify columns
)
INSERT INTO <existing_table> --specify columns if necessary
SELECT [DISTINCT] * FROM moved_rows;
Maar u wilt de gegevens verplaatsen naar een nieuwe tabel (niet een bestaande), de buitenste syntaxis is anders:
CREATE TABLE <new_table> AS
WITH moved_rows AS (
DELETE FROM <original_table> a
USING <other_table> b
WHERE <condition>
RETURNING a.* -- or specify columns
)
SELECT [DISTINCT] * FROM moved_rows;