PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Kopieren Sie Ergebnisse aus einer PostgreSQL-Ansicht in einer DB in eine Tabelle in einer anderen

Sie müssen keine temporäre Tabelle für COPY TO erstellen . Jede Abfrage kann seit PostgreSQL 8.2 die Quelle sein .

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

Lesen Sie das Handbuch über COPY . Erstellen Sie die benötigten Tabellen lokal mit

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

Kopieren Sie die DDL-Anweisungen und erstellen Sie alle Tabellen in der Zieldatenbank. pgAdmin ist eine praktische GUI, um das zu tun. Löschen Sie die leeren Tabellen in der Quelldatenbank erneut. Daten laden mit

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

Dump / Restore wie @wildplasser es beschreibt, ist ein anderer Weg.

Für eine einmalige Überweisung ist eine dieser Methoden ratsam. Für wiederholte Bewerbung dblink oder SQL/MED (Verwaltung externer Daten) möglicherweise besser geeignet.