Recherchez sur tout Techno-Science.net
       
Techno-Science.net : Suivez l'actualité des sciences et des technologies, découvrez, commentez
 A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | +
Déclencheur

Introduction

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

Dans les bases de données, lors de la mise à jour (Le jour ou la journée est l'intervalle qui sépare le lever du coucher du Soleil ; c'est la période entre deux nuits, pendant...) 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 (En mathématiques et en logique, une variable est représentée par un symbole. Elle est utilisée pour marquer un rôle dans une formule, un...) affectée à une autre fonction. Ce système s'apparente aux gestionnaires d'événements par exemple en Javascript (JavaScript est un langage de programmation de scripts principalement utilisé dans les pages web interactives mais aussi coté serveur. C'est un langage orienté objets à prototype, c'est-à-dire que les bases du...).

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

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

       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;       /      
Source: Wikipédia publiée sous licence CC-BY-SA 3.0. Vous pouvez soumettre une modification à cette définition sur cette page.

La liste des auteurs de cet article est disponible ici.