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

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.1448288314.txt.gz · Dernière modification: 23/11/2015 15:18 par amine