Sök…


Syntax

  • dblink ('dbname = name_db_distance port = PortOfDB host = HostOfDB user = usernameDB password = passwordDB', 'MY QUESRY')

  • dbname = databasens namn

  • port = Port i databasen

  • värd = värd för databasen

  • user = databasens användarnamn

  • lösenord = databasens lösenord ',

  • MY QUESRY = detta kan vara vilken operation jag vill göra VÄLJ, INSERT, ...

dblink EXTENSION är en teknik för att ansluta en annan databas och göra denna databas så att du gör det du behöver:

1-Skapa en dblink-förlängning:

CREATE EXTENSION dblink;

2-Gör din operation:

För exemple Välj något attribut från en annan tabell i en annan databas:

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

Förlängning FDW

FDW är en implimentering av dblink det är mer användbart, så att använda det:

1-Skapa en förlängning:

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-Skapa användarkartläggning för postgreserver

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

4-Skapa utländska tabeller:

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

5-använd denna utländska tabell som i din databas:

SELECT * FROM table_foreign;

Utländsk datapapper

För att få åtkomst till komplett schema för server db istället för enstaka tabeller. Följ nedanstående steg:

  1. Skapa EXTENSION:
    CREATE EXTENSION postgres_fdw;
  1. Skapa SERVER:
    CREATE SERVER server_name FOREIGN DATA WRAPPER postgres_fdw OPTIONS (host 'host_ip', 
    dbname 'db_name', port 'port_number');
  1. Skapa USER MAPPING:
    CREATE USER MAPPING FOR CURRENT_USER
    SERVER server_name
    OPTIONS (user 'user_name', password 'password');
  1. Skapa nytt schema för åtkomst till schema för server DB:
   CREATE SCHEMA schema_name;
  1. Importera serverschema:
     IMPORT FOREIGN SCHEMA schema_name_to_import_from_remote_db
     FROM SERVER server_name
     INTO schema_name;
  1. Få åtkomst till alla tabeller med serverschema:
    SELECT * FROM schema_name.table_name; 

Detta kan användas för att få åtkomst till flera scheman i fjärr-DB.



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow