Dans la vue V_Espece_dollars, la colonne prix_dollars correspond à ROUND(prix*1.30813, 2). Il n'est donc pas possible
d'insérer des données à partir de cette vue.
Code : SQL
INSERT INTO V_Espece_dollars (nom_courant, nom_latin, prix_dollars)
VALUES ('Perruche terrestre', 'Pezoporus wallicus', 30);
Code : Console
ERROR 1471 (HY000): The target table V_Espece_dollars of the INSERT is not insertableinto
Colonnes dupliquées
La même colonne ne peut pas être référencée deux fois dans la vue.
Exemple
Si l'on crée une vue avec deux fois la même colonne référencée, il est possible de modifier des données à partir de celle-ci, mais
pas d'en insérer.
Code : SQL
CREATE VIEW V_Espece_2noms
AS SELECT id, nom_courant, nom_latin, description, prix, nom_courant
AS nom2 -- nom_courant est référencé deux fois
FROM Espece;
-- Modification, pas de problème
UPDATE V_Espece_2noms
SET description= 'Joli oiseau aux plumes majoritairement vert
brillant', prix = 20.00
WHERE nom_courant = 'Perruche terrestre';
-- Insertion, impossible
INSERT INTO V_Espece_2noms (nom_courant, nom_latin, prix)
VALUES ('Perruche turquoisine', 'Neophema pulchella', 40);
Code : Console
ERROR 1471 (HY000): The target table V_Espece_2noms of the INSERT is not insertableinto
Conditions pour qu'une vue permette de supprimer des données (requêtes
DELETE)
Il est possible de supprimer des données à partir d'une vue si et seulement si :
il est possible de modifier des données à partir de cette vue ;
cette vue est "mono-table" (une seule table sous-jacente).
Partie 6 : Au-delà des tables classiques : vues, tables temporaires et vues matérialisées
348/414
www.openclassrooms.com
Précédent

- 348/413

Suivant