Documentation PostgreSQL 9.5.25 > Programmation serveur > PL/Python - Langage de procédures Python > Fonctions de déclencheurs | |
Blocs de code anonymes | Accès à la base de données |
Quand une fonction est utilisée par un trigger, le dictionnaire TD contient les valeurs relatives au trigger :
contient l'événement sous la forme d'une chaîne : INSERT, UPDATE, DELETE, TRUNCATE.
contient une chaîne valant soit BEFORE, soit AFTER soit INSTEAD OF.
contient une chaîne valant soit ROW soit STATEMENT.
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
contient le nom du trigger.
contient le nom de la table sur laquelle le trigger a été déclenché
contient le schéma de la table sur laquelle le trigger a été déclenché
contient l'OID de la table sur laquelle le trigger a été déclenché
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.