sql >> Base de Datos >  >> RDS >> PostgreSQL

Unión de resultados de dos bases de datos separadas

Según http://wiki.postgresql.org/wiki/FAQ

No hay forma de consultar una base de datos que no sea la actual. Debido a que PostgreSQL carga catálogos de sistemas específicos de la base de datos, no está claro cómo debería comportarse una consulta entre bases de datos. contrib/dblink permite consultas entre bases de datos mediante llamadas a funciones. Por supuesto, un cliente también puede realizar conexiones simultáneas a diferentes bases de datos y fusionar los resultados en el lado del cliente.

EDITAR :3 años después (marzo de 2014), esta entrada de preguntas frecuentes se revisó y es más útil:

¿Cómo realizo consultas utilizando varias bases de datos?

No hay forma de consultar directamente una base de datos que no sea la actual. Debido a que PostgreSQL carga catálogos de sistemas específicos de la base de datos, no está claro cómo debería comportarse una consulta entre bases de datos.

El soporte de SQL/MED en PostgreSQL permite crear un "envoltorio de datos externos", vinculando las tablas en una base de datos remota a la base de datos local. La base de datos remota puede ser otra base de datos en la misma instancia de PostgreSQL, o una base de datos al otro lado del mundo. no importa. postgres_fdw está integrado en PostgreSQL 9.3 e incluye soporte de lectura/escritura; se puede compilar e instalar una versión de solo lectura para 9.2 como un módulo de contribución.

contrib/dblink permite realizar consultas entre bases de datos mediante llamadas a funciones y está disponible para versiones mucho más antiguas de PostgreSQL. A diferencia de postgres_fdwit, no puede "empujar hacia abajo" las condiciones del servidor remoto, por lo que a menudo obtendrá muchos más datos de los que necesita.

Por supuesto, un cliente también puede realizar conexiones simultáneas a diferentes bases de datos y fusionar los resultados en el lado del cliente.