Database Reference
In-Depth Information
Les déclencheurs INSTEAD OF
Un déclencheur INSTEAD OF permet de mettre à jour une vue qui ne peut pas être modi-
iée directement par INSERT , UPDATE ou DELETE . L'expression instead of est explicite : le
déclencheur programmera des actions au lieu d'insérer, de modiier ou de supprimer dans
une vue.
Ce mécanisme peut être particulièrement intéressant dans un contexte de bases de données
réparties où une action sur la base doit être dupliquée via le réseau ( database links ).
Les déclencheurs INSTEAD OF sont des déclencheurs ligne (option FOR EACH ROW ), ils ne
s'appliquent qu'aux vues relationnelles ou objet et ne font pas intervenir les directives BEFORE
et AFTER au niveau de l'événement déclencheur. La syntaxe simpliiée d'un déclencheur INS-
TEAD OF .
CREATE TRIGGER nom_ declencheur
INSTEAD OF { UPDATE [OR INSERT] [OR DELETE] } ON nom _vue
[ REFERENCING NEW AS v1 OLD AS v2 ]
FOR EACH ROW
DECLARE
BEGIN
END;
L'option.de.contrôle.( WITH CHECK OPTION ).d'une.vue.n'est.pas.vérifiée.si.un.déclencheur.
INSTEAD OF .est.programmé.sur. l'événement.en.question. (ajout,.modification.ou.suppres-
sion)..Le.corps.du.déclencheur.doit.donc.explicitement.prendre.en.compte.la.contrainte.
À. l'instar.des.déclencheurs. traditionnels,. il.n'est.permis.de.programmer.qu'un. seul.déclen-
cheur. INSTEAD OF .par.table.
Considérons les vues relationnelles créées dans le premier paragraphe et qu'il n'était pas pos-
sible de mettre à jour.
Mise à jour d'une vue complexe
La vue suivante présente plusieurs obstacles à sa mise à jour directe : sa requête de déinition
contient des fonctions d'agrégat et elle ne contient pas la clé primaire qu'elle iltre.
 
Search WWH ::




Custom Search