PostgreSQLLa base de données la plus sophistiquée au monde.

42.6. Fonctions de déclencheurs

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 ou UNKNOWN.

TD["when"]

contient une chaîne valant soit BEFORE, soit AFTER soit UNKNOWN.

TD["level"]

contient une chaîne valant soit ROW soit STATEMENT soit UNKNOWN.

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 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 "MODIFY" pour indiquer que vous avez modifié la ligne. Sinon la valeur de retour est ignorée.