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_vues [23/11/2015 15:18] amine [MISE - À - JOUR DE VUES AVEC TRIGGERS] |
site:enseignement:licence:3i009:tme_triggers_vues [10/12/2018 18:14] (Version actuelle) hubert |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | {{indexmenu_n>28}} | + | {{indexmenu_n>12}} |
- | ====== TME Triggers et Vues ====== | + | ====== TME 11-b Triggers et Vues ====== |
===== MISE - À - JOUR DE VUES AVEC TRIGGERS ===== | ===== MISE - À - JOUR DE VUES AVEC TRIGGERS ===== | ||
Ligne 13: | Ligne 13: | ||
Vues : | Vues : | ||
- | * POLICIER (COTE, TITRE, AUTEUR) (185 nuplets) | + | * POLICIER (COTE, TITRE, AUTEUR) //(185 nuplets)// |
- | * LECTEUR_CATEGORIE (NOLECTEUR, CATEGORIE) (21 nuplets) | + | * LECTEUR_CATEGORIE (NOLECTEUR, CATEGORIE) //(21 nuplets)// |
- | * LECTEUR_POLICIER(NOLECTEUR, NOM, ADRESSE, COTE, DATEEMPRUNT, DATELIMITE) (18 nuplets) | + | * LECTEUR_POLICIER(NOLECTEUR, NOM, ADRESSE, COTE, DATEEMPRUNT, DATELIMITE) //(18 nuplets)// |
- | * DEPASSEMENTS (NOLECTEUR, COTE, DATELIMITE) (4 nuplets) | + | * DEPASSEMENTS (NOLECTEUR, COTE, DATELIMITE) //(4 nuplets)// |
- | * STATISTIQUES (NOLECTEUR, NBLIVRES) (3 nuplets) | + | * STATISTIQUES (NOLECTEUR, NBLIVRES) //(3 nuplets)// |
- | - Définissez un trigger pour pouvoir ensuite insérer un nouveau roman policier au moyen de la | + | - Définissez un trigger pour pouvoir insérer un nouveau roman policier dans la vue Policier. La commande suivante peut être utilisée SQL INSERT et en utilisant seulement la vue POLICIER : |
- | commande SQL INSERT et en utilisant seulement la vue POLICIER : | + | |
<code sql> | <code sql> | ||
INSERT INTO POLICIER VALUES ('PIW01','Ma vie','Sherlock Holmes') ; | INSERT INTO POLICIER VALUES ('PIW01','Ma vie','Sherlock Holmes') ; | ||
Ligne 29: | Ligne 28: | ||
<code sql> | <code sql> | ||
- | CREATE TRIGGER nom-trigger | + | CREATE OR REPLACE TRIGGER nom-trigger |
INSTEAD OF INSERT | DELETE | UPDATE | INSTEAD OF INSERT | DELETE | UPDATE | ||
ON nom-table [ORDER valeur de priorité] | ON nom-table [ORDER valeur de priorité] | ||
Ligne 40: | Ligne 39: | ||
Attention : On ne peut pas spécifier l'attribut mis-à-jour avec l'option INSTEAD OF UPDATE. | Attention : On ne peut pas spécifier l'attribut mis-à-jour avec l'option INSTEAD OF UPDATE. | ||
- | **Définissez des triggers (si nécessaire) pour pouvoir effectuer les mises-à-jour suivants sur les vues. Vérifiez la propagation des mises-à-jour dans les données.** | + | **Définissez des triggers (lorsque nécessaire) pour pouvoir propager l'effet des mises-à-jour des vues sur les table à partir desquelles elles sont calculées. ** |
a) <code sql>DELETE DEPASSEMENTS where nolecteur=5 ;</code> | a) <code sql>DELETE DEPASSEMENTS where nolecteur=5 ;</code> | ||
Ligne 49: | Ligne 48: | ||
c) <code sql>UPDATE LECTEUR_POLICIER SET NOM = 'Gaspart Dupond' WHERE NOM = 'Gaspard Dupont';</code> | c) <code sql>UPDATE LECTEUR_POLICIER SET NOM = 'Gaspart Dupond' WHERE NOM = 'Gaspard Dupont';</code> | ||
Attention : | Attention : | ||
- | * Il peut exister un homonyme de Gaspard Dupont qui ne lit pas des romans policiers. | ||
* Il faut que la mise-à-jour b) fonctionne toujours ! | * Il faut que la mise-à-jour b) fonctionne toujours ! | ||
+ | * Il y a deux lecteurs homonymes 'Gaspard Dupont' mais un seul est lecteur de policiers. |