PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Copiar resultados de uma visualização do PostgreSQL em um banco de dados para uma tabela em outro


Você não precisa criar uma tabela temporária para COPY TO . Qualquer consulta pode ser a fonte desde o PostgreSQL 8.2 .
COPY (SELECT * FROM view1) TO '/var/lib/postgres/myfile1.csv';

Leia o manual sobre COPY . Crie as tabelas necessárias localmente com
CREATE table tbl1 AS
SELECT * FROM view1
LIMIT 0;   -- no data, just the schema.

Copie as instruções DDL e crie todas as tabelas no banco de dados de destino. pgAdmin é uma GUI conveniente para fazer isso. Exclua as tabelas vazias no banco de dados de origem novamente. Carregar dados com
COPY tbl1 FROM '/var/lib/postgres/myfile1.csv';

Despejar/restaurar como @wildplasser descreve, é outra maneira.

Para uma transferência única, um desses métodos é aconselhável. Para aplicações repetidas, dblink ou SQL/MED (Gerenciamento de dados externos) pode ser mais adequado.