Heim >Datenbank >MySQL-Tutorial >Wie kann ich verschiedene PostgreSQL-Datenbanken abfragen?

Wie kann ich verschiedene PostgreSQL-Datenbanken abfragen?

Barbara Streisand
Barbara StreisandOriginal
2025-01-12 07:50:41748Durchsuche

How Can I Query Across Different PostgreSQL Databases?

Verwenden Sie PostgreSQL für datenbankübergreifende Abfragen

PostgreSQL selbst unterstützt datenbankübergreifende Abfragen nicht nativ, wie aus der Fehlermeldung hervorgeht, es sind jedoch einige Problemumgehungen verfügbar. Eine Möglichkeit besteht darin, die Erweiterung postgres_fdw zu verwenden.

postgres_fdw

postgres_fdw (Fremddaten-Wrapper) ermöglicht Ihnen die Verbindung zu einer Tabelle in jeder PostgreSQL-Datenbank, unabhängig von deren Speicherort. Um diese Erweiterung zu verwenden:

  1. Stellen Sie sicher, dass Ihre Version von Postgres postgres_fdw unterstützt (v9.3 oder höher empfohlen).

  2. Installieren Sie die Erweiterung postgres_fdw in jeder Datenbank, in der Sie datenbankübergreifende Abfragen durchführen möchten.

  3. Erstellen Sie eine externe Server- und Benutzerzuordnung:

    <code class="language-sql"> postgres=# CREATE SERVER foreign_server FOREIGN DATA WRAPPER postgres_fdw OPTIONS (host 'remote_host', port '5432');
     postgres=# CREATE USER MAPPING FOR CURRENT_USER SERVER foreign_server OPTIONS (user 'remote_user', password 'remote_password');</code>
  4. Externe Tabelle erstellen:

    <code class="language-sql"> postgres=# CREATE FOREIGN TABLE cross_db_table SERVER foreign_server OPTIONS (table_name 'remote_table');</code>

Alternativen vor Version 9.3

Für Postgres-Versionen vor 9.3 können Sie eine Funktion namens dblink verwenden, um datenbankübergreifende Abfragen durchzuführen. Obwohl es zusammen mit PostgreSQL verwaltet und verteilt wird, unterscheidet sich seine Verwendung von postgres_fdw. Weitere Informationen zu dblink finden Sie in der PostgreSQL-Dokumentation.

Das obige ist der detaillierte Inhalt vonWie kann ich verschiedene PostgreSQL-Datenbanken abfragen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn