Déclencheur

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher

En programmation procédurale, un déclencheur (trigger en anglais) est un dispositif logiciel qui provoque un traitement particulier en fonction d'événements prédéfinis. Par extension, c'est l'événement lui-même qui est qualifié de déclencheur.

Utilisation[modifier | modifier le code]

Dans les bases de données, lors de la mise à jour ou de la suppression d'une donnée, si un déclencheur existe, il peut lancer automatiquement une procédure stockée, qui agit en parallèle sur la même donnée dans une table afférente. Cela permet d'automatiser certains traitements assurant la cohérence et l'intégrité de la base de données.

Le déclencheur est la fonction qui initie une variable affectée à une autre fonction. Ce système s'apparente aux gestionnaires d'événements par exemple en JavaScript.

Les ordres du langage de définition de données (LDD) et de la gestion de transaction (CREATE, ALTER, DROP, COMMIT, SAVEPOINT) sont interdits pour les triggers autres que base de données (triggers système).

Exemple[modifier | modifier le code]

Trigger déclenché lors d’une insertion ou d’une modification de la table table_example en SQL :

 CREATE OR REPLACE TRIGGER trigg_example
 BEFORE INSERT OR UPDATE ON table_example
 FOR EACH ROW
 WHEN (NEW.no_line > 0)
 DECLARE
     evol_exemple NUMBER;
 BEGIN
     evol_exemple := :NEW.exemple  - :old.exemple;
     DBMS_OUTPUT.PUT_LINE('  evolution : ' || evol_exemple);
 END;
 /