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 23/11/2011 13:04:49

gilou974
Membre

Comprendre les arguments des triggers

Bonjour à tous,

je souhaiterais juste savoir si qqun aurait des pistes sur l'utilisation des arguments pour les triggers.

Dans la doc on trouve :

"Notez que la fonction doit être déclarée avec aucun argument même si elle s'attend à recevoir les arguments spécifiés dans CREATE TRIGGER -- les arguments trigger sont passés via TG_ARGV, comme décrit plus loin."

Seulement je n'ai pas réussi à trouver quels types d'arguments peuvent être passés et comment?


Si j'ai bien compris on ne peut pas savoir sur un update associé à un trigger quelle colonne a été modifiée et je voudrais savoir si avec les arguments on aurait un moyen d'y pallier.


Je pense que je pourrais le savoir en testant OLD.macol par rapport à NEW.macol mais c'est pour approfondir cette notion d'arguments.


Merci d'avance pour vos réponses.

Hors ligne

#2 23/11/2011 13:10:53

Marc Cousin
Membre

Re : Comprendre les arguments des triggers

TG_ARGV est un tableau de type texte. Donc les paramètres sont de type texte.

Sinon, vous pouvez, si vous êtes dans une version récente (9.0 ou plus), rajouter une clause WHEN à la déclaration du trigger (comme WHEN old.macol <> new.macol)


Marc.

Hors ligne

#3 23/11/2011 13:22:02

gilou974
Membre

Re : Comprendre les arguments des triggers

Merci à vous Marc.

Oui effectivement, j' avais vu le coup de la clause WHEN c'est ce que je voulais dire en écrivant  "en testant OLD.macol par rapport à NEW.macol".

Par contre en regardant la doc de la version 9 ( je devrais y passer dans pas trop longtemps) j'ai vu ceci :

CREATE TRIGGER check_update
    BEFORE UPDATE OF balance ON accounts
    FOR EACH ROW
    EXECUTE PROCEDURE check_account_update();

celà veut bien dire qu'à partir de la version 9 on peut déclencher le trigger sur un UPDATE d'une colonne en particulier ?


En tout cas merci encore pour votre réponse.

Hors ligne

#4 23/11/2011 13:42:58

Marc Cousin
Membre

Re : Comprendre les arguments des triggers

Exact. On peut. Par contre, ça ne détectera pas si l'update remet la même valeur que celle qui est déjà en place.


Marc.

Hors ligne

#5 23/11/2011 15:05:31

gilou974
Membre

Re : Comprendre les arguments des triggers

Oui on est d'accord!

Meric.

Hors ligne

Pied de page des forums