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

Copie los resultados de una vista de PostgreSQL en una base de datos a una tabla en otra

No necesita crear una tabla temporal para COPY TO . Cualquier consulta puede ser la fuente desde PostgreSQL 8.2 .

COPY (SELECT * FROM view1) TO '/var/lib/postgres/myfile1.csv';

Lea el manual sobre COPY . Cree las tablas necesarias localmente con

CREATE table tbl1 AS
SELECT * FROM view1
LIMIT 0;   -- no data, just the schema.

Copie las instrucciones DDL y cree todas las tablas en la base de datos de destino. pgAdmin es una GUI conveniente para hacer eso. Elimine las tablas vacías en la base de datos de origen nuevamente. Cargar datos con

COPY tbl1 FROM '/var/lib/postgres/myfile1.csv';

Volcar/restaurar como lo describe @wildplasser, es otra forma.

Para una transferencia única, se recomienda uno de esos métodos. Para aplicaciones repetidas, dblink o SQL/MED (Gestión de Datos Externos) puede ser más adecuado.