Zoeken…


Syntaxis

  • dblink ('dbname = name_db_distance port = PortOfDB host = HostOfDB gebruiker = gebruikersnaamDB wachtwoord = wachtwoordDB', 'MY QUESRY')

  • dbname = naam van de database

  • port = Port Van de database

  • host = Host Van de database

  • user = gebruikersnaam van de database

  • wachtwoord = wachtwoord van de database ',

  • MIJN VRAAG = dit kan elke bewerking zijn die ik wil doen SELECTEER, INVOEGEN, ...

dblink EXTENSION is een techniek om een andere database te verbinden en de werking van deze database uit te voeren, zodat u het volgende nodig hebt:

1-Maak een dubbele extensie:

CREATE EXTENSION dblink;

2 - Voer uw bewerking uit:

Selecteer bijvoorbeeld een kenmerk uit een andere tabel in een andere database:

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);

Uitbreiding FDW

FDW is een implementatie van dblink, het is nuttiger, dus om het te gebruiken:

1-Maak een extensie:

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-Maak user mapping voor postgres-server

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

4-Maak buitenlandse tabel:

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

5-gebruik deze buitenlandse tabel zoals deze in uw database staat:

SELECT * FROM table_foreign;

Wrapper voor buitenlandse gegevens

Voor toegang tot het volledige schema van server DB in plaats van een enkele tabel. Volg onderstaande stappen:

  1. UITBREIDING maken:
    CREATE EXTENSION postgres_fdw;
  1. SERVER maken:
    CREATE SERVER server_name FOREIGN DATA WRAPPER postgres_fdw OPTIONS (host 'host_ip', 
    dbname 'db_name', port 'port_number');
  1. Maak GEBRUIKERSMAPPING:
    CREATE USER MAPPING FOR CURRENT_USER
    SERVER server_name
    OPTIONS (user 'user_name', password 'password');
  1. Maak een nieuw schema om toegang te krijgen tot het schema van server DB:
   CREATE SCHEMA schema_name;
  1. Serverschema importeren:
     IMPORT FOREIGN SCHEMA schema_name_to_import_from_remote_db
     FROM SERVER server_name
     INTO schema_name;
  1. Toegang tot elke tabel van serverschema:
    SELECT * FROM schema_name.table_name; 

Dit kan worden gebruikt om toegang te krijgen tot meerdere schema's van externe DB.



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow