Bases de Données / Databases

Site Web de l'équipe BD du LIP6 / LIP6 DB Web Site

Outils pour utilisateurs

Outils du site


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)
  • LECTEUR_CATEGORIE (NOLECTEUR, CATEGORIE)
  • LECTEUR_POLICIER(NOLECTEUR, NOM, ADRESSE, COTE, DATEEMPRUNT, DATELIMITE)
  • DEPASSEMENTS (NOLECTEUR, COTE, DATELIMITE)
  • STATISTIQUES (NOLECTEUR, NBLIVRES)
  1. 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 :

INSERT INTO POLICIER VALUES ('PIW01','Ma vie','Sherlock Holmes') ;

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.

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 ;

Attention : On ne peut pas spécifier l'attribut mis-à-jour avec l'option INSTEAD OF UPDATE.

  1. 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)

DELETE DEPASSEMENTS WHERE nolecteur=5 ;

Attention : on ne veut pas effacer les n-uplets dans la table PRET. b)

UPDATE LECTEUR_POLICIER SET DATELIMITE = DATELIMITE+14;

c)

UPDATE LECTEUR_POLICIER SET NOM = 'Gaspart Dupond' WHERE NOM = 'Gaspard Dupont';

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.1445449151.txt.gz · Dernière modification: 21/10/2015 19:39 par amann