postgresql
EXTENSION dblink et postgres_fdw
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 d'extension
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:
- Créer une extension:
CREATE EXTENSION postgres_fdw;
- Créer SERVER:
CREATE SERVER server_name FOREIGN DATA WRAPPER postgres_fdw OPTIONS (host 'host_ip', dbname 'db_name', port 'port_number');
- Créer une cartographie utilisateur:
CREATE USER MAPPING FOR CURRENT_USER SERVER server_name OPTIONS (user 'user_name', password 'password');
- Créez un nouveau schéma pour accéder au schéma de la base de données du serveur:
CREATE SCHEMA schema_name;
- Importer le schéma du serveur:
IMPORT FOREIGN SCHEMA schema_name_to_import_from_remote_db FROM SERVER server_name INTO schema_name;
- 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.