Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Printemps des cartes 2024

#1 Tue 05 April 2022 12:50

Géorom
Juste Inscrit !
Date d'inscription: 4 Jan 2013
Messages: 2

Postgis - Articulation Event Trigger et Trigger

Bonjour à tous,

Je débute avec les triggers et j'avais une question sur les connections avec les event trigger. Mon problème est le suivant. J'ai un trigger qui me permet de mettre à jour certaines colonnes dans des tables. Ces colonnes sont souvent redondantes sur beaucoup de tables et je créé donc le même trigger sur chaque table.
J'aimerai automatiser ça dans la mesure du possible. J'avais dans l'idée de faire un event_trigger qui à chaque création de table me créé ce trigger spécifique. Le problème c'est comment faire pour qu'il me récupère le schéma et le nom de la table créée pour le mettre dans le trigger.

Je sais pas si je suis très clair.

Merci à vous.

Hors ligne

 

#2 Tue 05 April 2022 13:17

Nicolas Ribot
Membre
Lieu: Toulouse
Date d'inscription: 9 Sep 2005
Messages: 1536

Re: Postgis - Articulation Event Trigger et Trigger

Bonjour,

Si le traitement est tjs a peu près le même, faites une fonction trigger générique que vous associez à plusieurs tables.
Vous pouvez savoir grâce aux variables de la fonction trigger sur quelle table/colonne le trigger est en train d'agir, si vous devez faire des opérations spécifiques pour certaines tables.

Nicolas

Hors ligne

 

#3 Tue 05 April 2022 13:57

JP LLORENS
Participant assidu
Date d'inscription: 12 Nov 2008
Messages: 231

Re: Postgis - Articulation Event Trigger et Trigger

Pour compléter N. Ribot, la variable TG_TABLE_NAME vous permet de savoir quelle est la table appelant le trigger.
Il suffit donc de faire un test sur cette variable et en fonction du résultat d'adapter les requêtes dans votre trigger :

Code:

IF TG_TABLE_NAME  =  'matable' THEN
...;
ELSEIF  TG_TABLE_NAME  ='autretable THEN
...;
END IF;

Cordialement

Hors ligne

 

Pied de page des forums

Powered by FluxBB