PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Unione di risultati da due database separati

Secondo http://wiki.postgresql.org/wiki/FAQ

Non c'è modo di interrogare un database diverso da quello corrente. Poiché PostgreSQL carica cataloghi di sistema specifici del database, non è certo come una query tra database debba comportarsi.contrib/dblink consente query tra database utilizzando chiamate di funzione. Naturalmente, un client può anche effettuare connessioni simultanee a diversi database e unire i risultati sul lato client.

MODIFICA :3 anni dopo (marzo 2014), questa voce delle domande frequenti è stata rivista ed è più utile:

Come faccio a eseguire query utilizzando più database?

Non c'è modo di interrogare direttamente un database diverso da quello corrente. Poiché PostgreSQL carica cataloghi di sistema specifici del database, è incerto anche come dovrebbe comportarsi una query tra database.

Il supporto SQL/MED in PostgreSQL consente di creare un "wrapper di dati esterni", collegando le tabelle in un database remoto al database locale. Il database remoto potrebbe essere un altro database sulla stessa istanza PostgreSQL o un database dall'altra parte del mondo, è non importa.postgres_fdw è integrato in PostgreSQL 9.3 e include supporto per lettura/scrittura; una versione di sola lettura per 9.2 può essere compilata e installata come modulo contrib.

contrib/dblink consente query tra database utilizzando chiamate di funzione ed è disponibile per versioni PostgreSQL molto più vecchie. A differenza di postgres_fdwit non è in grado di "spingere" le condizioni sul server remoto, quindi spesso recupera molti più dati di quelli necessari.

Naturalmente, un client può anche effettuare connessioni simultanee a diversi database e unire i risultati sul lato client.