Non è necessario creare una tabella temporanea per COPY TO
. Qualsiasi query può essere l'origine da PostgreSQL 8.2 .
COPY (SELECT * FROM view1) TO '/var/lib/postgres/myfile1.csv';
Leggi il manuale su COPY . Crea le tabelle necessarie in locale con
CREATE table tbl1 AS
SELECT * FROM view1
LIMIT 0; -- no data, just the schema.
Copia le istruzioni DDL e crea tutte le tabelle nel db di destinazione. pgAdmin è una comoda GUI con cui farlo. Elimina di nuovo le tabelle vuote nel db di origine. Carica i dati con
COPY tbl1 FROM '/var/lib/postgres/myfile1.csv';
Scaricare / ripristinare come lo descrive @wildplasser, è un altro modo.
Per un trasferimento una tantum è consigliabile uno di questi metodi. Per applicazioni ripetute, dblink o SQL/MED (Gestione dei dati esterni) potrebbe essere più adatto.