Partie I
SQL de base
184
© Éditions Eyrolles
Tables protégées (key preserved tables)
Une table est dite protégée par sa clé (key preserved) si sa clé primaire est préservée dans la
clause de jointure et se retrouve en tant que colonne de la vue multitable (elle peut jouer le rôle
de clé primaire de la vue).
En considérant les données initiales pour la vue multitable Vue_Multi_Comp_Pil, la table
préservée est la table Pilote, car la colonne brevet identifie chaque enregistrement extrait
de la vue, alors que la colonne comp ne le fait pas.
Cela ne veut pas dire pour autant que cette vue est modifiable. Étudions à présent les conditions qui régissent ces limitations.
Critères
Une vue multitable modifiable (updatable join view ou modifiable join view) est une vue qui
n’est pas définie avec l’option ALGORITHM=TEMPTABLE et qui est telle que la requête de
définition contient plusieurs tables dans la clause FROM.
Aucune suppression n’est possible.
Les insertions sont permises seulement en isolant toutes les colonnes d’une seule table source.
Attention aux effets de bord quand vous modifiez une colonne provenant d’une table non protégée par clé. Il est plus naturel de modifier directement la table en question.
Modifions de différentes manières la vue multitable Vue_Multi_Comp_Pil. La première
tente une suppression, les deux suivantes modifient tantôt une colonne de la table protégée,
tantôt une colonne de la table non protégée. Les deux dernières instructions insèrent dans
chacune des deux tables.
Tableau 5-19 Vue multitable
Création de la vue
Résultats
CREATE VIEW
AS SELECT c.comp,
c.nomComp,
, p.nom,
p.nbHVol
FROM Pilote p,
Compagnie c
WHERE p.compa=c.comp;
+------+--------------+--------+-------------+---------+
| comp | nomComp
| brevet | nom
| nbHVol |
+------+--------------+--------+-------------+---------+
| AF
| Air France
| PL-1
| Louise Ente | 450.00 |
| AF
| Air France
| PL-2
| Paul Ente
| 900.00 |
| SING | Singapore AL | PL-3
| Paul Soutou | 1000.00 |
+------+--------------+--------+-------------+---------+
Web
Vue_Multi_Comp_Pil
p.brevet
Précédent

- 206/418

Suivant