Quand une fonction est utilisée par un trigger, le dictionnaire
TD contient les valeurs relatives au trigger :
TD["event"]
contient l'événement sous la forme d'une chaîne :
INSERT, UPDATE,
DELETE, TRUNCATE.
TD["when"]
contient une chaîne valant soit BEFORE, soit
AFTER soit INSTEAD OF.
TD["level"]
contient une chaîne valant soit ROW soit
STATEMENT.
TD["new"]TD["old"]pour un trigger au niveau ligne, ces champs contiennent les lignes du trigger, l'ancienne version et la nouvelle version ; les deux champs ne sont pas forcément disponibles, ceci dépendant de l'événement qui a déclenché le trigger
TD["name"]contient le nom du trigger.
TD["table_name"]contient le nom de la table sur laquelle le trigger a été déclenché
TD["table_schema"]contient le schéma de la table sur laquelle le trigger a été déclenché
TD["relid"]contient l'OID de la table sur laquelle le trigger a été déclenché
TD["args"]
si la commande CREATE TRIGGER comprend des arguments,
ils sont disponibles dans les variables allant de
TD["args"][0] à
TD["args"][.
n-1]
Si TD["when"] vaut BEFORE ou
INSTEAD OF et si
TD["level"] vaut ROW, vous pourriez
renvoyer None ou "OK" à partir de la
fonction Python pour indiquer que la ligne n'est pas modifiée,
"SKIP" pour annuler l'événement ou si TD["event"]
vaut INSERT ou UPDATE, vous
pouvez renvoyer "MODIFY" pour indiquer que vous
avez modifié la ligne. Sinon la valeur de retour est ignorée.