Zugriff auf eine zweite Datenbank in PostgreSQL mit dblink

Um auf eine lokale oder im Netzwerk befindliche zweite PostgreSQL-Datenbank unter PostgreSQL zugreifen zu können, benötigt man dblink. Um die Funktionen, die dblink bietet, nutzen zu können, muss man während der Installation von PostgreSQL ggf. explizit die Option dblink auswählen.

Anschließend kann man, z.B. über die Funktionen dblink_connect und dblink, eine Verbindung zu einer anderen Datenbank herstellen. Eine genaue Beschreibung der Funktionen findet sich im unten stehenden Link.

Hier ein Beispiel:

SELECT dblink_connect
('MyConnection','dbname=Mitarbeiter user=postgres password=postgres');

SELECT Vorname, Nachname from dblink
('MyConnection','SELECT "Vorname", "Nachname" FROM "Adresse"') AS (Vorname text, Nachname text); 


Der Server und die Datenbank werden über einen Standard-libpq Verbindungs-String identifiziert. Optional kann man der Verbindung einen Namen geben (in diesem Fall ‚MyConnection‘). Es können mehrere Verbindungen mit verschiedenen Namen aufgerufen werden, jedoch nur eine unbenannte Verbindung. Die Verbindung bleibt so lange bestehen, bis sie explizit geschlossen wird oder die Datenbank-Session beendet wird.

Die dblink-Funktionen lassen sich ebenfalls in einem Datenbank-View verwenden.

Links:

https://www.postgresql.org/docs/current/dblink.html
IDKBAD001169 KBAD001169