site:enseignement:licence:3i009:tme_triggers_vues
Ceci est une ancienne révision du document !
TME Triggers et Vues
MISE - À - JOUR DE VUES AVEC TRIGGERS
On reprend les tables et les vues définies dans le TME 8 :
Tables :
- LIVRE (COTE, TITRE, CATEGORIE, AUTEUR)
- LECTEUR ( NOLECTEUR, NOM, ADRESSE)
- PRET (COTE, NOLECTEUR, DATEEMPRUNT, DATELIMITE, RENDU)
Vues :
- POLICIER (COTE, TITRE, AUTEUR) 185 nuplets * LECTEUR_CATEGORIE (NOLECTEUR, CATEGORIE) 21 nuplets
- LECTEUR_POLICIER(NOLECTEUR, NOM, ADRESSE, COTE, DATEEMPRUNT, DATELIMITE) 18 nuplets * DEPASSEMENTS (NOLECTEUR, COTE, DATELIMITE) 4 nuplets
- STATISTIQUES (NOLECTEUR, NBLIVRES) 3 nuplets - Définissez un trigger pour pouvoir ensuite insérer un nouveau roman policier au moyen de la commande SQL INSERT et en utilisant seulement la vue POLICIER : <code sql> INSERT INTO POLICIER VALUES ('PIW01','Ma vie','Sherlock Holmes') ; </code> Le trigger pour une vue doit être du type INSTEAD OF (à la place de) : il est appelé à la place de l'insertion réelle et doit donc contenir une instruction INSERT qui ajoutera le n-uplet dans la table LIVRE. <code sql> CREATE TRIGGER nom-trigger INSTEAD OF INSERT | DELETE | UPDATE ON nom-table [ORDER valeur de priorité] [REFERENCING NEW | OLD [AS] nom-variable] FOR EACH ROW | STATEMENT [WHEN (conditionSQL)] BEGIN actionSQL END ; </code> 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. a) <code sql>DELETE DEPASSEMENTS where nolecteur=5 ;</code> Attention : on ne veut pas effacer les n-uplets dans la table PRET. b) <code sql>UPDATE LECTEUR_POLICIER SET DATELIMITE = DATELIMITE+14;</code> c) <code sql>UPDATE LECTEUR_POLICIER SET NOM = 'Gaspart Dupond' WHERE NOM = 'Gaspard Dupont';</code> 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 !
site/enseignement/licence/3i009/tme_triggers_vues.1448288279.txt.gz · Dernière modification : de amine