Bonjour,

Je cherche à réaliser des jointures entre des tables qui se trouvent sur des serveurs postgres 9.3 distants.

Pour ce faire j'ai exploré les méthodes proposées pour permettre l'accès entre bases de données :
- dblink : finalement pas testé car la deuxième solution semblait désormais conseillée.
- postgres_fdw : solution testée

J'ai ainsi appliqué les requêtes suivantes :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
CREATE EXTENSION postgres_fdw; 

CREATE SERVER foreign_server_srvdata
    FOREIGN DATA WRAPPER postgres_fdw
    OPTIONS (host 'ip du serveur', port '5432', dbname 'nom de ma base distante');

CREATE USER MAPPING FOR postgres
        SERVER foreign_server_srvdata
        OPTIONS (user 'postgres', password 'mon mot de passe');
Jusque là tout a fonctionné.

Là où je coince s'est, ensuite, dans la façon de constituer la requête de sélection par exemple.

Si je fais, par exemple, un select tout simple :

SELECT *
FROM MaBasDistante.MonSchema.MaTable

J'ai le message suivant :

ERREUR: les références entre bases de données ne sont pas implémentées

Je suppose qu'il doit falloir déclarer de façon bien spécifique les tables distantes dans le cadre d'une requête mixant des tables locales avec des tables distantes... mais je ne sais comment faire ?

J'ai eu beau fouiller sur différents forums, je n'ai trouvé aucun de exemple de requête de ce type.

Merci d'avance pour votre aide.