Bạn không cần tạo bảng tạm thời cho COPY TO
. Bất kỳ truy vấn nào cũng có thể là nguồn kể từ PostgreSQL 8.2 .
COPY (SELECT * FROM view1) TO '/var/lib/postgres/myfile1.csv';
Đọc hướng dẫn về COPY . Tạo các bảng cần thiết cục bộ với
CREATE table tbl1 AS
SELECT * FROM view1
LIMIT 0; -- no data, just the schema.
Sao chép các hướng dẫn DDL và tạo tất cả các bảng trong db đích. pgAdmin là một GUI thuận tiện để làm điều đó. Xóa các bảng trống trong db nguồn một lần nữa. Tải dữ liệu bằng
COPY tbl1 FROM '/var/lib/postgres/myfile1.csv';
Dump / restore như @wildplasser mô tả, là một cách khác.
Đối với chuyển khoản một lần, một trong những phương pháp đó được khuyến khích. Đối với ứng dụng lặp lại, hãy dblink hoặc SQL / MED (Quản lý dữ liệu bên ngoài) có thể phù hợp hơn.