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.