Du behöver inte skapa en tillfällig tabell för COPY TO
. Vilken fråga som helst kan vara källan sedan PostgreSQL 8.2 .
COPY (SELECT * FROM view1) TO '/var/lib/postgres/myfile1.csv';
Läs manualen om COPY . Skapa de nödvändiga tabellerna lokalt med
CREATE table tbl1 AS
SELECT * FROM view1
LIMIT 0; -- no data, just the schema.
Kopiera DDL-instruktionerna och skapa alla tabeller i måldb. pgAdmin är ett bekvämt GUI att göra det med. Ta bort de tomma tabellerna i käll-db igen. Ladda data med
COPY tbl1 FROM '/var/lib/postgres/myfile1.csv';
Dumpa / återställa som @wildplasser beskriver det, är ett annat sätt.
För en engångsöverföring är en av dessa metoder att rekommendera. För upprepad applicering, dblink eller SQL/MED (Hantering av extern data) kan vara lämpligare.