Trigger postgresql detecter l'évenement déclencheur

Dans un trigger postgresql on a souvent besoin d'identifier l'évènement qui déclenché la lancement du trigger .

Cela est particulièrement vrais quand le trigger peut être appelé en INSERT ou UPDATE.

Dans ce cas certaines variables de trigger (OLD) ne sont disponibles que pour le trigger UPDATE.

Pour détecter l'évènement qui est à l'origine du lancement du trigger il faut donc faire appel à la variable TG_OP.

Par exemple pour savoir si le trigger a été lancé par un update on utilisera :

IF (TG_OP = 'UPDATE') THEN
     -- il s'agit d'un update
ELSE
    --- il s'agit d'un autre évènement
END IF;

Rien de bien sorcier et à compléter dans la doc Postgres

Par Christophe HIRON
28 février 2013