Formation MYSQL - Vues

Ce sujet est résolu
28427
,

Bonjour,

J'ai suivis la formation MYSQL et j'avais une question sur les vues. Dans votre formation vous disiez que l'on ne pouvais pas modifier une vue. Pourtant lorsque je modifie une vues avec phpmyadmin il me donne cette rêquete

UPDATE `test`.`v_articles` SET `categories_titre` = 'Art' WHERE `v_articles`.`id` =2;

Celle-ci modifie l'entré dans la table catégorie.

Je voulais savoir si c'est à cause de PHPMYADMIN ou si on peux vraiment éditer une vue ?

Merci

Gilbert

1 Réponse

Default
,

Il semble que ca marche aussi dans le client ligne de commandes.

Mais d'une maniere generale je trouve pas ca tres "propre" de faire un update sur une vue.

Une vue est faite pour visualiser des donnees aggregees (pouvant venir de plusieurs tables), je trouve ca meme dangereux de modifier les donnees physique par le biais d'une vue.

mysql> create table sl_test2 ( id int(11), value varchar(5));
Query OK, 0 rows affected (0.05 sec)
mysql> insert into sl_test2 values (1, 'toto'), (2, 'titi') ;
Query OK, 2 rows affected (0.00 sec)
Records: 2 Duplicates: 0 Warnings: 0
mysql> create view vsl_test2 as select * from sl_test2;
Query OK, 0 rows affected (0.03 sec)
mysql> select * from vsl_test2 ;
+------+-------+
| id | value |
+------+-------+
| 1 | toto |
| 2 | titi |
+------+-------+
2 rows in set (0.00 sec)
mysql> update vsl_test2 set value='tutu' where id=2 ;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> select * from sl_test2
    -> ;
+------+-------+
| id | value |
+------+-------+
| 1 | toto |
| 2 | tutu |
+------+-------+
2 rows in set (0.00 sec)