PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 27/06/2014 11:27:05

map34
Membre

[RESOLU]comment déclencher un trigger sur ajout dans une foreign table

Bonjour,

Je n'arrive pas à résoudre simplement (en fait je n'y arrive pas tout court) le fait de déclencher un trigger ou une règle sur l'ajout dans une table distante (postgres_fdw).

La situation :
- une base "dictionnaire" avec des tables de référence
- x bases (une par instance d'une application web) pour lesquelles je veux que certaines infos soient synchrones (notamment les utilisateurs)

pour l'exemple de la table md.personne, dans le cas d'un fonctionnement "autonome", lors de l'ajout d'une personne (=utilisateur), il y a déclenchement d'un trigger (qui va entre autre créer une vue suffixée par id_personne... mais c'est un détail qui n'est pas important ici).

le but :
lorsque j'ajoute une personne dans une base courante, que cet ajout soit répercuté dans toutes les autres bases courantes avec le déclenchement des triggers associés.

l'essai :
utilisation de postgre_fdw, lien opérationnel, aucun trigger ou règles sur ajout, modif, suppression sur cette table distante...

Auriez-vous quelques propositions stratégiques, ou solutions techniques?

En vous remerciant,

Patrick.

Dernière modification par map34 (30/06/2014 10:29:14)

Hors ligne

#2 27/06/2014 13:33:33

rdunklau
Membre

Re : [RESOLU]comment déclencher un trigger sur ajout dans une foreign table

Bonjour.

Je ne suis pas sûr de bien comprendre votre problématique: pourriez-vous apporter des précisions ?

Les personnes sont-elles ajoutées dans une table locale ou étrangère ? Si étrangère, vers où pointe-t-elle ? Si la table pointée possède des triggers, ils devraient se déclencher "normalement".
En revanche, les autres bases ayant des tables étrangères pointant vers cette table ne seront pas notifiées de l'ajout.

En 9.3, une table étrangère ne peut pas avoir de trigger. Cela sera possible à partir de la version 9.4. Cela ne concerne en revanche que les insertions réalisées via la table étrangère, pas celles réalisées dans la table pointée par celle-ci.

Hors ligne

#3 30/06/2014 10:27:04

map34
Membre

Re : [RESOLU]comment déclencher un trigger sur ajout dans une foreign table

rdunklau a écrit :

Les personnes sont-elles ajoutées dans une table locale ou étrangère ? Si étrangère, vers où pointe-t-elle ? Si la table pointée possède des triggers, ils devraient se déclencher "normalement".
En revanche, les autres bases ayant des tables étrangères pointant vers cette table ne seront pas notifiées de l'ajout.

En 9.3, une table étrangère ne peut pas avoir de trigger. Cela sera possible à partir de la version 9.4. Cela ne concerne en revanche que les insertions réalisées via la table étrangère, pas celles réalisées dans la table pointée par celle-ci.

Entendu, donc pas possible pour l'instant...
Merci pour les infos, je me re pencherais sur le sujet dans quelques mois...

Patrick.

Hors ligne

Pied de page des forums