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> | ||
Ligne 98: | Ligne 104: | ||
On suppose que tous les TDs de toutes les UEs sont synchronisés au niveau des horaires et de la durée | On suppose que tous les TDs de toutes les UEs sont synchronisés au niveau des horaires et de la durée | ||
(il n'y a pas de conflit possible entre deux TDs qui ne commencent pas à la même heure et n'ont pas lieu dans la même salle). | (il n'y a pas de conflit possible entre deux TDs qui ne commencent pas à la même heure et n'ont pas lieu dans la même salle). | ||
- | L’enseignant qui assure le TD est identifié par NOENS. Les étudiants s’inscrivent à chaque UE, séparemment, et choisissent un seul TD pour cette UE. | + | L’enseignant qui assure le TD est identifié par NOENS. Les étudiants s’inscrivent à chaque UE, séparément, et choisissent un seul TD pour cette UE. |
L'étudiant est identifié par NOETUD. | L'étudiant est identifié par NOETUD. | ||