CREATE TRIGGERtrigger_nametrigger_timetrigger_eventONtbl_nameFOR EACH ROWtrigger_stmt
Un déclencheur est un objet de base de données associé à une table, qui s'active lorsqu'un événement particulier survient.
Le déclencheur est associé à la table appelée
tbl_name.
tbl_name doit faire référence à une
table permanente. Vous ne pouvez pas associer un déclencheur avec
une table TEMPORARY ou une vue.
trigger_time est le moment d'action du
déclencheur. Il peut être BEFORE (avant) ou
AFTER (après), pour indiquer que le
délencheur s'active avant ou après la commande qui le
déclenche.
trigger_event indique le type de
commande qui active le déclencheur. Il peut valoir
INSERT, UPDATE ou
DELETE. Par exemple, un déclencheur
BEFORE pour une commande
INSERT peut être utilisé pour vérifier les
valeurs avant leur insertion dans la table.
Il ne peut pas y avoir deux déclencheurs pour une même table
avec les mêmes configurations de moment et de commande. Par
exemple, vous ne pouvez pas avor deux déclencheurs
BEFORE UPDATE pour la même table. Mais vous
pouvez avoir un déclencheur BEFORE UPDATE et
un déclencheur BEFORE INSERT, ou un
déclencheur BEFORE UPDATE et un déclencheur
AFTER UPDATE.
trigger_stmt est la commande a
exécuter lorsque le déclencheur s'active. Si vous voulez
utiliser plusieurs commandes, utilisez les agrégateurs
BEGIN ... END. Cela vous permet aussi
d'utiliser les mêmes codes que ceux utilisés dans des
procédures stockées. See Section 19.2.7, « La commande composée BEGIN ... END ».
Note : actuellement, les déclencheurs ont les mêmes limitations que les procédures stockées : ils ne peuvent pas contenir de références directes aux tables via leur nom. Cette limitation sera levée dès que possible.
Cependant, dans la commande d'activation d'un déclencheur, vous
pouvez faire référence aux colonnes dan la table associée au
déclencheur en utilisant les mots OLD et
NEW.
OLD. faire
référence à une colonne d'une ligne existante avant sa
modification ou son effacement.
col_nameNEW. faire
référence à une colonne d'une ligne après insertion ou
modification.
col_name
L'utilisation de SET
NEW. requiert le droit de
col_name =
valueUPDATE sur la colonne. L'utilisation de
SET requiert le
droit de value =
NEW.col_nameSELECT sur la colonne.
La commande CREATE TRIGGER requiert le droit de
SUPER. Elle a été ajoutée en MySQL 5.0.2.
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.
