PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Verschieben von Daten von einer Tabelle in eine andere, Postgresql-Edition

[Erweiterung der Antwort von dvv]

Sie können wie folgt zu einer vorhandenen Tabelle wechseln. Für nicht übereinstimmende Schemas sollten Sie Spalten angeben.

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;

Aber Sie möchten die Daten in eine neue verschieben Tabelle (nicht vorhanden), die äußere Syntax ist 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;