Recherche…


Syntaxe

  • dblink ('dbname = nom_db_distance port = hôte PortOfDB = HostOfDB user = nom d'utilisateurDB mot de passe = passwordDB', 'MY QUESRY')

  • dbname = nom de la base de données

  • port = Port de la base de données

  • host = hôte de la base de données

  • user = nom d'utilisateur de la base de données

  • password = mot de passe de la base de données ',

  • MY QUESRY = cela peut être n'importe quelle opération que je veux faire SELECT, INSERT, ...

dblink EXTENSION est une technique permettant de connecter une autre base de données et de faire en sorte que cette base de données fonctionne de la manière suivante:

1-Créer une extension dblink:

CREATE EXTENSION dblink;

2-Faites votre opération:

Par exemple Sélectionnez un attribut d'une autre table dans une autre base de données:

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

Extention FDW

FDW est une implication de dblink, il est plus utile de l’utiliser:

1-Créer une extension:

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-Créer un mappage utilisateur pour le serveur postgres

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

4-Créer une table étrangère:

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

5-utiliser cette table étrangère comme dans votre base de données:

SELECT * FROM table_foreign;

Wrapper de données étrangères

Pour accéder au schéma complet du serveur db au lieu d'une table unique. Suivez les étapes ci-dessous:

  1. Créer une extension:
    CREATE EXTENSION postgres_fdw;
  1. Créer SERVER:
    CREATE SERVER server_name FOREIGN DATA WRAPPER postgres_fdw OPTIONS (host 'host_ip', 
    dbname 'db_name', port 'port_number');
  1. Créer une cartographie utilisateur:
    CREATE USER MAPPING FOR CURRENT_USER
    SERVER server_name
    OPTIONS (user 'user_name', password 'password');
  1. Créez un nouveau schéma pour accéder au schéma de la base de données du serveur:
   CREATE SCHEMA schema_name;
  1. Importer le schéma du serveur:
     IMPORT FOREIGN SCHEMA schema_name_to_import_from_remote_db
     FROM SERVER server_name
     INTO schema_name;
  1. Accédez à n'importe quelle table du schéma de serveur:
    SELECT * FROM schema_name.table_name; 

Cela peut être utilisé pour accéder à plusieurs schémas de la base de données distante.



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow