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.