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

Unindo resultados de dois bancos de dados separados


De acordo com http://wiki.postgresql.org/wiki/FAQ

Não há outra maneira de consultar um banco de dados além do atual. Como o PostgreSQL carrega catálogos de sistema específicos do banco de dados, é incerto como uma consulta entre bancos de dados deve se comportar. O contrib/dblink permite consultas entre bancos de dados usando chamadas de função. Claro, um cliente também pode fazer conexões simultâneas com diferentes bancos de dados e mesclar os resultados no lado do cliente.

EDITAR :3 anos depois (março de 2014), esta entrada de perguntas frequentes foi revisada e é mais útil:

Como faço consultas usando vários bancos de dados?

Não há como consultar diretamente um banco de dados diferente do atual. Como o PostgreSQL carrega catálogos de sistema específicos de banco de dados, é incerto como uma consulta entre bancos de dados deve se comportar.

O suporte SQL/MED no PostgreSQL permite a criação de um "empacotador de dados estrangeiros", ligando as tabelas de um banco de dados remoto ao banco de dados local. não importa.postgres_fdw está embutido no PostgreSQL 9.3 e inclui suporte para leitura/gravação; uma versão somente leitura para 9.2 pode ser compilada e instalada como um módulo contrib.

contrib/dblink permite consultas entre bancos de dados usando chamadas de função e está disponível para versões muito mais antigas do PostgreSQL. Ao contrário do postgres_fdwit, ele não pode "empurrar" as condições para o servidor remoto, então ele geralmente busca muito mais dados do que você precisa.

Obviamente, um cliente também pode fazer conexões simultâneas com diferentes bancos de dados e mesclar os resultados no lado do cliente.