Heim >Datenbank >MySQL-Tutorial >Wie kann ich datenbankübergreifende Abfragen in PostgreSQL durchführen?

Wie kann ich datenbankübergreifende Abfragen in PostgreSQL durchführen?

Patricia Arquette
Patricia ArquetteOriginal
2025-01-12 10:56:43383Durchsuche

How Can I Perform Cross-Database Queries in PostgreSQL?

Aktivieren datenbankübergreifender Abfragen in PostgreSQL

Während PostgreSQL auf den ersten Blick datenbankübergreifende Abfragen einzuschränken scheint, gibt es eine praktische Lösung. Das postgres_fdw-Modul (Foreign Data Wrapper) bietet die notwendige Funktionalität, um eine Verbindung zu verschiedenen PostgreSQL-Datenbanken herzustellen und diese abzufragen, unabhängig von deren Standort (lokal oder remote).

Wichtige Überlegung: Bevor Sie datenbankübergreifende Abfragen auf einem einzelnen Computer implementieren, sollten Sie sich mit der Verwendung von Schemata vertraut machen. Schemas bieten einen einfacheren Ansatz für die Abfrage verschiedener Datensätze, ohne dass eine zusätzliche Konfiguration erforderlich ist.

postgres_fdwKompatibilität:

Das Modul postgres_fdw ist mit den PostgreSQL-Versionen 9.3 und höher kompatibel. Für Versionen vor 9.3 bietet die Funktion dblink eine vergleichbare Lösung.

Implementierungsschritte:

Um postgres_fdw für datenbankübergreifende Abfragen zu nutzen:

  1. Erstellen Sie einen Fremddaten-Wrapper:Erstellen Sie einen Fremddaten-Wrapper für die Zieldatenbank:
<code class="language-sql">CREATE FOREIGN DATA WRAPPER postgres_fdw OPTIONS (
    host 'hostname',
    port '5432',    -- Standard PostgreSQL port
    dbname 'target_database'
);</code>
  1. Definieren Sie einen fremden Server: Erstellen Sie einen fremden Server, der eine Verbindung zur Zieldatenbank herstellt:
<code class="language-sql">CREATE SERVER target_server FOREIGN DATA WRAPPER postgres_fdw OPTIONS (
    user 'username',
    password 'password'
);</code>
  1. Benutzerzugriff zuordnen: Erstellen Sie eine Benutzerzuordnung, die dem aktuellen Benutzer Zugriff auf die Zieldatenbank gewährt:
<code class="language-sql">CREATE USER MAPPING FOR current_user SERVER target_server OPTIONS (
    user 'target_user',
    password 'target_password'
);</code>
  1. Fremdtabelle importieren:Importieren Sie die gewünschte Tabelle (oder das gewünschte Schema) in Ihre aktuelle Datenbank:
<code class="language-sql">IMPORT FOREIGN SCHEMA all FROM SERVER target_server INTO schema_name;</code>
  1. Fragen Sie die importierte Tabelle ab: Fragen Sie nun die importierte Tabelle ab, als wäre es eine lokale Tabelle:
<code class="language-sql">SELECT * FROM schema_name.target_table;</code>

Das obige ist der detaillierte Inhalt vonWie kann ich datenbankübergreifende Abfragen in PostgreSQL durchführen?. 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