Anda tidak perlu membuat tabel sementara untuk COPY TO
. Kueri apa pun dapat menjadi sumber sejak PostgreSQL 8.2 .
COPY (SELECT * FROM view1) TO '/var/lib/postgres/myfile1.csv';
Baca manual tentang COPY . Buat tabel yang dibutuhkan secara lokal dengan
CREATE table tbl1 AS
SELECT * FROM view1
LIMIT 0; -- no data, just the schema.
Salin instruksi DDL dan buat semua tabel di target db. pgAdmin adalah salah satu GUI yang nyaman untuk melakukannya. Hapus tabel kosong di sumber db lagi. Muat data dengan
COPY tbl1 FROM '/var/lib/postgres/myfile1.csv';
Buang / pulihkan seperti yang dijelaskan oleh @wildplasser, adalah cara lain.
Untuk transfer satu kali, salah satu metode tersebut disarankan. Untuk aplikasi berulang, dblink atau SQL/MED (Pengelolaan Data Eksternal) mungkin lebih cocok.