Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
site:enseignement:licence:3i009:tme_triggers [18/12/2017 09:35] hubert [Travail à faire] |
site:enseignement:licence:3i009:tme_triggers [11/12/2018 09:29] (Version actuelle) hubert [Travail à faire] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
{{indexmenu_n>11}} | {{indexmenu_n>11}} | ||
- | ====== TME 10 Triggers ====== | + | ====== TME 11-a Triggers ====== |
Sous Oracle, le bloc d’instructions d’un trigger est un bloc PL/SQL. | Sous Oracle, le bloc d’instructions d’un trigger est un bloc PL/SQL. | ||
Dans ce TME nous allons utiliser un sous-ensemble minimal de PL/SQL pour définir et modifier des variables | Dans ce TME nous allons utiliser un sous-ensemble minimal de PL/SQL pour définir et modifier des variables | ||
Ligne 63: | Ligne 63: | ||
RAISE_APPLICATION_ERROR(code,'message') ; | RAISE_APPLICATION_ERROR(code,'message') ; | ||
</code> | </code> | ||
+ | |||
+ | |||
+ | ** Limitations : ** | ||
+ | Un trigger AFTER déchenché après un update (ou un insert) de la table T n'est pas autorisé à modifier la table T (ne pas écrire d'instruction ''update T'' dans le corps du trigger). Pour palier cette limitation, utiliser un trigger BEFORE. | ||
+ | |||
+ | |||
======= Travail à faire ======= | ======= Travail à faire ======= | ||
Ligne 84: | Ligne 90: | ||
DROP TABLE INSCRIPTION; | DROP TABLE INSCRIPTION; | ||
CREATE TABLE INSCRIPTION ( | CREATE TABLE INSCRIPTION ( | ||
- | noEtudiant smallint, | + | noEtud smallint, |
noTD smallint, | noTD smallint, | ||
codeUE varchar(10), | codeUE varchar(10), | ||
- | PRIMARY KEY (noEtudiant, codeUE)) ; | + | PRIMARY KEY (noEtud, codeUE)) ; |
</code> | </code> | ||