0% ont trouvé ce document utile (0 vote)
31 vues7 pages

Sltriggers

Les déclencheurs (triggers) sont des procédures stockées qui s'activent automatiquement lors d'événements spécifiques pour gérer des redondances et des contraintes complexes. Bien qu'ils soient puissants pour contrôler les bases de données, leur exécution invisible peut entraîner des inefficacités et des effets imprévisibles, rendant leur utilisation délicate. Il est essentiel de les manipuler avec précaution en raison des risques de cycles sans fin et de lenteurs potentielles.

Transféré par

Niji Chris
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
31 vues7 pages

Sltriggers

Les déclencheurs (triggers) sont des procédures stockées qui s'activent automatiquement lors d'événements spécifiques pour gérer des redondances et des contraintes complexes. Bien qu'ils soient puissants pour contrôler les bases de données, leur exécution invisible peut entraîner des inefficacités et des effets imprévisibles, rendant leur utilisation délicate. Il est essentiel de les manipuler avec précaution en raison des risques de cycles sans fin et de lenteurs potentielles.

Transféré par

Niji Chris
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Cours de bases de données,

http://sql.bdpedia.fr

Triggers

1Philippe Rigaux
Les déclencheurs, ou triggers
Un déclencheur (trigger ) est une procédure stockée qui se déclenche automatiquement
sur certains événements.
Utilité :
• Gestion des redondances
• Enregistrement automatique de certains événements
• Gestion de contraintes complexes (exemple : le prix d’un produit ne peut
qu’augmenter)
• Gestion de contraintes liées à l’environnement d’exécution (restrictions sur les
horaires, les utilisateurs, etc.)

Inconvénient (fort) : les triggers s’exécutent de manière ca-


chée, et peuvent mener à des cycles sans fin.

2
Etudions un exemple
Un logement est constitué de chambres ; sa capacité est la somme du nombre de lits.
On crée un trigger qui maintient cette valeur agrégative.
create trigger CumulCapacité
after update on Chambre
for each row
when (new.nbLits != old.nbLits)
begin
update Logement
set capacité = capacité - :old.nbLits + :new.nbLits
where code = :new.codeLogement;
end;

Notez : les variables old et new, représentant le nuplet


avant/après la mise à jour

3
Les composants d’un trigger

Modèle basé sur la séquence Evénement-Condition-Action (ECA) :


• Un trigger est déclenché par une insertion, destruction ou modification
• La condition est testée, et si elle n’est pas satisfaite, l’exécution du trigger s’arrête
• L’action est effectuée à l’aide du langage procédural (PL/SQL)

De plus : un trigger peut manipuler simultanément les valeurs


ancienne et nouvelle du nuplet modifié.

4
Les triggers ont des inconvénients
On peut créer des triggers sources d’inefficacité. Exemple
create trigger CumulCapaciteGlobal
after update or insert or delete on Chambre
begin
update Logement C
set capacité = (select sum (nbLits)
from Chambre
where code = :new.codeLogement);
end;

L’exécution est invisible, donc problème difficile à détecter

5
Les triggers sont dangereux !
L’exécution combinée des triggers peut avoir des effets imprévisibles.
La création du trigger suivant bloque le programme qui l’exécute.

create trigger MAJChambre


after update or delete or insert on Logement
begin
update chambre
set nbLits = (select :new.capacité / count (*)
from Chambre
where codeLogement = :new.code);
end;

Je modifie un logement ⇒ je modifie les chambres ⇒ je mo-


difie le logement, etc.

6
À retenir
Les triggers : mécanisme puissant. Pratique, par exemple,

• pour contrôler ce qui se passe dans une base de données


• pour mémoriser les actions sensibles (destruction)

Mais dangereux, à utiliser avec précaution


• L’exécution d’un trigger est invisible : l’équivalent d’un effet de bord en
programmation
• Un trigger peut être source (invisible) de lenteur
• La composition de plusieurs triggers est incontrôlable

Vous aimerez peut-être aussi