Suche…


Syntax

  • dblink ('dbname = name_db_distance port = PortOfDB-Host = HostOfDB-Benutzer = BenutzernameDB-Kennwort = KennwortDB', 'MEINE FRAGE')

  • Datenbankname = Name der Datenbank

  • port = Port der Datenbank

  • host = Host der Datenbank

  • user = Benutzername der Datenbank

  • Passwort = Passwort der Datenbank ',

  • MY QUESRY = Dies kann eine beliebige Operation sein, die ich SELECT, INSERT, ... ausführen möchte.

dblink EXTENSION ist eine Technik, um eine andere Datenbank zu verbinden und den Betrieb dieser Datenbank durchzuführen, damit Sie Folgendes benötigen:

1-Dblink-Erweiterung erstellen:

CREATE EXTENSION dblink;

2-Machen Sie Ihre Operation:

Wählen Sie beispielsweise ein Attribut aus einer anderen Tabelle in einer anderen Datenbank aus:

SELECT * FROM 
dblink ('dbname = bd_distance port = 5432 host = 10.6.6.6 user = username 
password = passw@rd', 'SELECT id, code FROM schema.table') 
AS newTable(id INTEGER, code character varying);

Erweiterung FDW

FDW ist eine Implementierung von dblink. Es ist hilfreicher, also verwenden Sie es:

1 -Erstellen Sie eine Erweiterung:

CREATE EXTENSION postgres_fdw;

2-Create SERVER:

CREATE SERVER name_srv FOREIGN DATA WRAPPER postgres_fdw OPTIONS (host 'hostname', 
dbname 'bd_name', port '5432');

3 Erstellen Sie eine Benutzerzuordnung für den Postgres-Server

CREATE USER MAPPING FOR postgres SERVER name_srv OPTIONS(user 'postgres', password 'password');

4 - Erstellen Sie eine fremde Tabelle:

CREATE FOREIGN TABLE table_foreign (id INTEGER, code character varying) 
SERVER name_srv OPTIONS(schema_name 'schema', table_name 'table');

Verwenden Sie diese Fremdtabelle wie in Ihrer Datenbank:

SELECT * FROM table_foreign;

Fremddaten-Wrapper

Zugriff auf das vollständige Schema der Server-Datenbank anstelle einer einzelnen Tabelle. Befolgen Sie die folgenden Schritte:

  1. ERWEITERUNG erstellen:
    CREATE EXTENSION postgres_fdw;
  1. SERVER erstellen:
    CREATE SERVER server_name FOREIGN DATA WRAPPER postgres_fdw OPTIONS (host 'host_ip', 
    dbname 'db_name', port 'port_number');
  1. Erstellen Sie USER MAPPING:
    CREATE USER MAPPING FOR CURRENT_USER
    SERVER server_name
    OPTIONS (user 'user_name', password 'password');
  1. Erstellen Sie ein neues Schema, um auf das Schema der Server-DB zuzugreifen:
   CREATE SCHEMA schema_name;
  1. Serverschema importieren:
     IMPORT FOREIGN SCHEMA schema_name_to_import_from_remote_db
     FROM SERVER server_name
     INTO schema_name;
  1. Greifen Sie auf eine Tabelle mit Serverschemas zu:
    SELECT * FROM schema_name.table_name; 

Dies kann für den Zugriff auf mehrere Remote-DB-Schemas verwendet werden.



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow