sql >> Database >  >> RDS >> PostgreSQL

gegevens van de ene tabel naar de andere verplaatsen, postgresql-editie

[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;


  1. SQLAlchemy of psycopg2?

  2. UNPIVOT op een onbepaald aantal kolommen

  3. Hoe drop Unique Constraint-scripts in SQL Server-database te genereren - SQL Server / TSQL-zelfstudie, deel 99

  4. Problemen oplossen AlwaysOn - Soms zijn er veel paar ogen nodig