PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Copia i risultati da una vista PostgreSQL in un DB a una tabella in un altro

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.