site:enseignement:licence:3i009:tme_triggers
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| site:enseignement:licence:3i009:tme_triggers [18/12/2017 09:35] – [Travail à faire] hubert | site:enseignement:licence:3i009:tme_triggers [09/12/2025 12:30] (Version actuelle) – amann | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| {{indexmenu_n> | {{indexmenu_n> | ||
| - | ====== TME 10 Triggers ====== | + | ====== TME 10-a Triggers ====== |
| Sous Oracle, le bloc d’instructions d’un trigger est un bloc PL/ | Sous Oracle, le bloc d’instructions d’un trigger est un bloc PL/ | ||
| 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 23: | Ligne 23: | ||
| - | **Variables PL/SQL** | + | **Variables PL/SQL**entre |
| Les variables utilisées dans un bloc PL/SQL doivent être déclarées dans la section DECLARE de ce bloc. | Les variables utilisées dans un bloc PL/SQL doivent être déclarées dans la section DECLARE de ce bloc. | ||
| Ligne 32: | Ligne 32: | ||
| On utilise l’opérateur '': | On utilise l’opérateur '': | ||
| + | <br/> | ||
| Instructions PL/SQL : | Instructions PL/SQL : | ||
| + | <br/> | ||
| Une expression SQL est une instruction PL/SQL. Par exemple, on peut utiliser l' | Une expression SQL est une instruction PL/SQL. Par exemple, on peut utiliser l' | ||
| <code sql> | <code sql> | ||
| - | select Jour, Heure, Salle | + | select Jour, Heure, Salle entre |
| into JourI, HeureI, SalleI | into JourI, HeureI, SalleI | ||
| from TD | from TD | ||
| Ligne 60: | Ligne 60: | ||
| On ne peut pas annuler une transaction à l' | On ne peut pas annuler une transaction à l' | ||
| - | <code plsql> | + | <code plsql>entre |
| RAISE_APPLICATION_ERROR(code,' | RAISE_APPLICATION_ERROR(code,' | ||
| </ | </ | ||
| + | |||
| + | Le code doit être dans l' | ||
| + | |||
| + | ** 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' | ||
| + | |||
| + | |||
| ======= Travail à faire ======= | ======= Travail à faire ======= | ||
| Ligne 84: | Ligne 91: | ||
| DROP TABLE INSCRIPTION; | DROP TABLE INSCRIPTION; | ||
| CREATE TABLE INSCRIPTION ( | CREATE TABLE INSCRIPTION ( | ||
| - | noEtudiant | + | noEtud |
| noTD smallint, | noTD smallint, | ||
| | | ||
| - | PRIMARY KEY (noEtudiant, codeUE)) ; | + | PRIMARY KEY (noEtud, codeUE)) ; |
| </ | </ | ||
| Ligne 110: | Ligne 117: | ||
| - Créez un trigger qui empêche que le nombre de groupes par UE dépasse 4. | - Créez un trigger qui empêche que le nombre de groupes par UE dépasse 4. | ||
| - Créez un trigger qui empêche le nombre d' | - Créez un trigger qui empêche le nombre d' | ||
| - | - Pour empêcher un étudiant de s’inscrire à des TD incompatibles (i.e. ayant lieu en même temps), | + | - Pour empêcher un étudiant de s’inscrire à des TD incompatibles (i.e. ayant lieu en même temps), |
| Ecrire un trigger qui assure cette contrainte, de la façon suivante : | Ecrire un trigger qui assure cette contrainte, de la façon suivante : | ||
site/enseignement/licence/3i009/tme_triggers.1513586140.txt.gz · Dernière modification : de hubert
