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: 23/11/2015 15:17 par amine