Académique Documents
Professionnel Documents
Culture Documents
Introduction
Bloc PL/SQL
Déclaration des variable
Structure de contrôle
Curseurs
Les exceptions
p
Les fonctions et procédures
Les packages
Les triggers
2013-2014 N.EL FADDOULI
1
Triggers ( déclencheurs )
Définition
Utilité
Structure d’un trigger
Exemples
Page 1
Définition
Déclencheur::
Déclencheur
o Action ou ensemble d’actions déclenchée(s) automatiquement
lorsq ’une
lorsqu ne condition se trouve
tro e satisfaite après l’apparition
l apparition d
d’un
n
événement..
événement
Un déclencheur est une règle ECA
o Evénement = mise à jour, suppression, insertion
o Condition = expression logique vraie ou fausse, optionnelle
o Action = p
procédure exécutée lorsque
q la condition est vérifiée
vérifiée..
Exemples::
Exemples
o Avec ORACLE, les événements sont prédéfinies et les conditions et
les actions sont spécifiées par le langage procédural PL/SQL.
PL/SQL.
o Avec DB
DB22, le langage est le C
2013-2014 N.EL FADDOULI
68
Utilité
Utilité :
o Maintien de contraintes d’intégrité.
o Sécurité
o .....
Page 2
Structure d’un trigger
CREATE [ OR REPLACE ] TRIGGER nom_trigger
{BEFORE | AFTER | INSTEAD OF}
OF} // événement
{INSERT | DELETE | UPDATE [OF liste de colonnes ] }
ON table
bl
[ FOR EACH ROW ]
[ WHEN (condition de déclenchement) ] // condition
DECLARE
……
BEGIN
....... //Actions avec les données
EXCEPTION
……………….
END ;
/
2013-2014 N.EL FADDOULI
70
BEGIN
/
2013-2014 N.EL FADDOULI
71
Page 3
Structure d’un trigger
Une structure de trigger est composée de trois parties:
Un événement déclencheur E: action externe sur une table ou sur un tuple qui
déclenche le trigger.
Page 4
Exemple 1: Lorsqu'une augmentation du prix Unitaire ( PU )d'un
Produit est tentée, il faut limiter l'augmentation à 10% du prix en cours
CREATE OR REPLACE TRIGGER BORNER_AUGMENTPU
BEFORE UPDATE OF Prix UPDATE PRODUIT
ON PRODUIT SET Prix = 15.99
Page 5
Exemple3 : Utilisation d'un TRIGGER pour le maintien d'une
contrainte d'intégrité statique
BEGIN
END;
Exemple 4
Lors d'un achat, la quantité à commandé d'un produit ne peut pas
dépasser la quantité en stock disponible
Page 6
Extension procédurale pour
corpsTrigger
Traitements complexes
Combiner
C bi plusieurs
l i TRIGGER
vérifier quel est l ’événement déclencheur
Ordre d ’exécution des TRIGGER
BEFORE avant AFTER,...
entre TRIGGER de même type ?
f
forcer un ordre
d en combinant
bi
Oracle
PL/SQL
Page 7