PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Copier les résultats d'une vue PostgreSQL dans une base de données vers une table dans une autre

Vous n'avez pas besoin de créer une table temporaire pour COPY TO . Toute requête peut être la source depuis PostgreSQL 8.2 .

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

Lisez le manuel sur COPY . Créez les tables nécessaires localement avec

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

Copiez les instructions DDL et créez toutes les tables dans la base de données cible. pgAdmin est une interface graphique pratique pour le faire. Supprimez à nouveau les tables vides dans la base de données source. Charger des données avec

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

Vider/restaurer comme @wildplasser le décrit, est une autre façon.

Pour un transfert unique, l'une de ces méthodes est recommandée. Pour une application répétée, dblink ou SQL/MED (Gestion des données externes) peut être plus approprié.