Pular para o conteúdo

Acessando dois databases no mesmo SELECT (PostgreSQL)

Dica publicada em Banco de Dados / Postgres
Hamilton R. Amorim hra
Hits: 52.165 Categoria: Banco de Dados Subcategoria: Postgres
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Acessando dois databases no mesmo SELECT (PostgreSQL)

Às vezes precisamos no mesmo SELECT juntar informações que estão em vários bancos de dados diferentes, ou mesmo em servidores diferentes.

Para isso existe no Postgres um módulo contrib chamado DbLink, que permite fazer uma consulta em outro banco de dados e retornar como se fosse uma tabela comum.

Para usar o DbLink você precisa primeiro obter o pacote contrib do Postgres:

# apt-get install postgresql-contrib

Depois é preciso instalar o módulo no seu banco de dados:

$ psql -d meudb -U meuUser -f /usr/share/postgresql/contrib/dblink.sql

Uma vez feito isso, seu banco de dados já possui a função dbLink() e pode fazer consultas em outros bancos de dados, inclusive JOIN entre tabelas. A sintaxe para acessar outro banco é como o exemplo:

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
SELECT * FROM dblink('hostaddr=192.168.1.1 dbname=meuDb user=fulano password=minhasenha', 'select tablename from pg_tables') AS minha_tabela(tablename varchar);

Você especifica no primeiro parâmetro os atributos de conexão e no segundo o select a efetuar. É preciso também fornecer uma estrutura de retorno do select. O ideal nesses casos é criar uma view.

OBS: Os comandos foram testados em Debian Sarge e funcionam, em outras distros podem ser necessários ajustes.

HRA

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Codecs de vídeo para o Totem

xmms-shell - uma maneira eficiente de controlar seu xmms

Mudando de Gnome para KDE no VNC

PostgreSQL - Bancos com diferentes encodings

Modelagem de bancos de dados

Evitando erros ao indexar campos timestamp em SQL

Guardando e Recuperando Dados JSON em Tabela PostgreSQL

Documentação do PosgreSQL 8.0 em Português_BR

Nenhum comentário foi encontrado.

Contribuir com comentário

Entre na sua conta para comentar.