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

Version anglaise

45.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.

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.