© Éditions Eyrolles
263
chapitre n° 7
Programmation avancée
En théorie, les événements déclencheurs peuvent être :
q
une instruction INSERT, UPDATE, ou DELETE sur une table (ou vue). On parle de déclencheurs LMD ;
q
une instruction CREATE, ALTER, ou DROP sur un objet (table, vue, index, etc.). On parle
de déclencheurs LDD ;
q
le démarrage ou l’arrêt de la base (startup ou shutdown), une erreur spécifique (not found,
duplicate key, etc.), une connexion ou une déconnexion d’un utilisateur. On parle de
déclencheurs d’instances.
En pratique, dans MySQL, seuls les événements de la première catégorie sont pris en compte.
Mécanisme général
Auparavant considérés au niveau table, les déclencheurs sont désormais attachés, à plus juste
titre, au niveau database. En conséquence, le nom d’un déclencheur doit être unique pour
chaque base de données. En revanche, différentes bases peuvent héberger un déclencheur de
même nom.
La figure suivante illustre les quatre étapes à suivre pour mettre complètement en œuvre un
déclencheur (de la création à son test). Il faut d’abord le coder (comme un sous-programme),
puis le compiler (il est pour l’instant stocké indépendamment de la table, mais il devrait y être
inclus dans les prochaines versions). Par la suite, au cours du temps, chaque événement (qui
caractérise le déclencheur) aura pour conséquence son exécution.
Syntaxe
Pour pouvoir créer un déclencheur, vous devez disposer du privilège SUPER (le privilège
CREATE TRIGGER est à venir). Un déclencheur est composé de deux parties : la description
de l’événement traqué et celle de l’action à réaliser lorsque l’événement se produit. La syntaxe
de création d’un déclencheur est la suivante :
Figure 7-6 Mécanisme des déclencheurs
1. Écriture
CREATE TRIGGER trig1
{ BEFORE | AFTER }
nature de l’événement e1
ON Tab1
Bloc d’instructions
2
.
Compilation
3. Événement e1
sur Tab1
4. Actions codées dans trig1
Tab1
trig1
Précédent

- 285/418

Suivant