sql >> Databasteknik >  >> RDS >> PostgreSQL

Sammanfoga resultat från två separata databaser

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

Det finns inget sätt att fråga en annan databas än den nuvarande. Eftersom PostgreSQL laddar databasspecifika systemkataloger är det osäkert hur en korsdatabasförfrågan ens ska bete sig.contrib/dblink tillåter korsdatabasförfrågningar med funktionsanrop. Givetvis kan en klient också göra samtidiga kopplingar till olika databaser och slå samman resultaten på klientsidan.

REDIGERA :3 år senare (mars 2014) har denna FAQ-post reviderats och är mer användbar:

Hur utför jag frågor med flera databaser?

Det finns inget sätt att direkt fråga en annan databas än den nuvarande. Eftersom PostgreSQL laddar databasspecifika systemkataloger är det osäkert hur en korsdatabasförfrågan ens ska bete sig.

SQL/MED-stödet i PostgreSQL tillåter att ett "utländskt dataomslag" kan skapas, som länkar tabeller i en fjärrdatabas till den lokala databasen. Fjärrdatabasen kan vara en annan databas på samma PostgreSQLinstance, eller en databas halvvägs runt världen. spelar ingen roll.postgres_fdw är inbyggt i PostgreSQL 9.3 och inkluderar läs/skrivstöd; en skrivskyddad version för 9.2 kan kompileras och installeras som en bidragsmodul.

contrib/dblink tillåter korsdatabasförfrågningar med funktionsanrop och är tillgänglig för mycket äldre PostgreSQL-versioner. Till skillnad från postgres_fdwit kan inte "pressa ner" villkor till fjärrservern, så det kommer ofta att landa upp och hämta mycket mer data än du behöver.

Naturligtvis kan en klient också göra samtidiga kopplingar till olika databaser och slå samman resultaten på klientsidan.



  1. Hur man listar tabell främmande nycklar

  2. 4 sätt att kontrollera en kolumns datatyp i MariaDB

  3. Hur returnerar man en array från Java till PL/SQL?

  4. Java Oracle-undantag - maximalt antal uttryck i en lista är 1000