Déclencheur

Un article de Wikipédia, l'encyclopédie libre.

En informatique, 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.

[modifier] Utilisation

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 supprime en parallèle une même donnée dans une table afférente. Cela permet de prédéterminer certains traitements assurant la cohérence et l'intégrité de la base de données.

En programmation, c'est la fonction qui initie une variable affectée à une autre fonction, un peu comme un fusil dont on appuye sur la gachette pour lancer la balle qui frappe la cloche pour générer le son. En Javascript, nous pourrions retrouver la fonction "OnClick(gachette)" qui modifierait la variable "volume" de la fonction Cloche() pour activer le son.

Les ordres du 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).

[modifier] Exemple

Trigger déclenché lors d’une insertion ou d’une modification de la table 'table_exple'

CREATE OR REPLACE TRIGGER trigg_exple
BEFORE INSERT OR UPDATE ON table_exple
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;
/

FOR EACH ROW permet de faire déclencher le trigger plusieurs fois sur un seul UPDATE. Si on ne souhaite qu’un seul déclenchement, on omet simplement la clause FOR EACH STATEMENT.