Vous n'êtes pas identifié(e).
Pages : 1
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
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
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
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
Oui on est d'accord!
Meric.
Hors ligne
Pages : 1