sql >> Base de Datos >  >> RDS >> PostgreSQL

mover datos de una tabla a otra, edición postgresql

[Ampliando la respuesta de dvv]

Puede moverse a una tabla existente de la siguiente manera. Para un esquema no coincidente, debe especificar columnas.

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;

Pero desea mover los datos a un nuevo tabla (no existente), la sintaxis externa es diferente:

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;