PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

mover dados de uma tabela para outra, edição postgresql


[Expandindo a resposta do dvv]

Você pode mover para uma tabela existente da seguinte maneira. Para esquema sem correspondência, você deve especificar colunas.
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;

Mas você deseja mover os dados para um novo table (não uma existente), a sintaxe externa é 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;