Ricerca…


Sintassi

  • dblink ('dbname = nome_db_distance port = PortOfDB host = HostOfDB utente = nomeutenteDB password = passwordDB', 'MY QUESRY')

  • dbname = nome del database

  • porta = Porta del database

  • host = host del database

  • utente = nome utente del database

  • password = password del database ',

  • MY QUESRY = questa può essere qualsiasi operazione che voglio fare SELECT, INSERT, ...

dblink EXTENSION è una tecnica per connettere un altro database e fare il funzionamento di questo database in modo da fare ciò di cui hai bisogno:

1-Creare un'estensione del dblink:

CREATE EXTENSION dblink;

2-Fai la tua operazione:

Ad esempio Selezionare alcuni attributi da un'altra tabella in un altro 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);

Estensione FDW

FDW è un'implosione di dblink è più utile, quindi per usarlo:

1-Creare un'estensione:

CREATE EXTENSION postgres_fdw;

2-Crea SERVER:

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

3-Crea mappatura utente per server postgres

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

4-Crea tabella esterna:

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

5-usa questa tabella straniera come se fosse nel tuo database:

SELECT * FROM table_foreign;

Wrapper di dati stranieri

Per accedere allo schema completo del server db invece della singola tabella. Segui i passaggi seguenti:

  1. Crea ESTENSIONE:
    CREATE EXTENSION postgres_fdw;
  1. Crea SERVER:
    CREATE SERVER server_name FOREIGN DATA WRAPPER postgres_fdw OPTIONS (host 'host_ip', 
    dbname 'db_name', port 'port_number');
  1. Crea MAPPING UTENTE:
    CREATE USER MAPPING FOR CURRENT_USER
    SERVER server_name
    OPTIONS (user 'user_name', password 'password');
  1. Crea un nuovo schema per accedere allo schema del DB del server:
   CREATE SCHEMA schema_name;
  1. Importa schema server:
     IMPORT FOREIGN SCHEMA schema_name_to_import_from_remote_db
     FROM SERVER server_name
     INTO schema_name;
  1. Accedi a qualsiasi tabella dello schema del server:
    SELECT * FROM schema_name.table_name; 

Questo può essere usato per accedere a più schemi del DB remoto.



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow