Déclencheurs

Un déclencheur est une fonction spéciale qui est appelée sur un événement INSERT, UPDATE ou DELETE sur une table. N’importe quel langage de procédures stockées permet d’écrire ces fonctions et elles peuvent être mises en place par la commande CREATE TRIGGER :


CREATE TRIGGER nom  
 { BEFORE | AFTER | INSTEAD OF }  
{ INSERT | UPDATE [ OF colonne [, ...]]  
  | DELETE | TRUNCATE [ OR ... ] }  
    ON table  
    [ FOR [ EACH ] { ROW | STATEMENT } ]  
    WHEN ( condition )  
    EXECUTE PROCEDURE nomfonc ( arguments ) 
 

Un déclencheur s’utilise avant, après ou à la place d’un événement et peut être utilisé sur chaque ligne concernée ou une seule fois par opération avec l’option FOR EACH STATEMENT.

Une fonction de déclencheur n’a généralement pas de paramètres en entrée et retourne un type de données trigger.

1. Code PL/pgSQL

Lorsque une fonction trigger est écrite en PL/pgSQL, quelques variables sont implicitement définies, afin de connaître le contexte d’utilisation de la fonction. Les variables implicites sont les suivantes :

  • TG_WHEN : moment du déclenchement : AFTER ou BEFORE, soit avant ou après l’ordre SQL déclenchant l’appel de la fonction.

  • TG_OP : opération INSERT, UPDATE...

Pour consulter la suite, découvrez le livre suivant :
couv_EP4POST.png
60-signet.svg
En version papier
20-ecran_lettre.svg
En version numérique
41-logo_abonnement.svg
En illimité avec l'abonnement ENI
130-boutique.svg
Sur la boutique officielle ENI
Précédent
Procédures stockées
Suivant
Contrôle de fonctions