Nie musisz tworzyć tabeli tymczasowej dla COPY TO
. Każde zapytanie może być źródłem od PostgreSQL 8.2 .
COPY (SELECT * FROM view1) TO '/var/lib/postgres/myfile1.csv';
Przeczytaj podręcznik na temat KOPIOWANIA . Utwórz potrzebne tabele lokalnie za pomocą
CREATE table tbl1 AS
SELECT * FROM view1
LIMIT 0; -- no data, just the schema.
Skopiuj instrukcje DDL i utwórz wszystkie tabele w docelowej bazie danych. pgAdmin jest jednym z wygodnych interfejsów graficznych. Ponownie usuń puste tabele w źródłowej bazie danych. Załaduj dane za pomocą
COPY tbl1 FROM '/var/lib/postgres/myfile1.csv';
Zrzucanie / przywracanie, tak jak opisuje to @wildplasser, to inny sposób.
Na jednorazowy transfer wskazany jest jeden z tych sposobów. W przypadku wielokrotnego stosowania dblink lub SQL/MED (Zarządzanie danymi zewnętrznymi) może być bardziej odpowiedni.