Maison  >  Article  >  base de données  >  Après avoir mis à jour une valeur dans une vue spécifique, MySQL met-il à jour la même valeur dans la table de base et ses vues associées (le cas échéant) ?

Après avoir mis à jour une valeur dans une vue spécifique, MySQL met-il à jour la même valeur dans la table de base et ses vues associées (le cas échéant) ?

WBOY
WBOYavant
2023-08-24 09:37:021338parcourir

更新特定视图中的任何值后,MySQL 是否会更新基表及其关联视图(如果有)中的相同值?

Oui, MySQL mettra à jour la valeur, si elle est mise à jour dans une vue, dans la table de base ainsi que dans ses vues associées Pour l'illustrer nous prenons l'exemple de la table Student_info ayant les données suivantes −

.
mysql> Select * from student_info;
+------+---------+------------+------------+
| id   | Name    | Address    | Subject    |
+------+---------+------------+------------+
| 101  | YashPal | Amritsar   | History    |
| 105  | Gaurav  | Chandigarh | Literature |
| 125  | Raman   | Shimla     | Computers  |
| NULL | Ram     | Jhansi     | Computers  |
+------+---------+------------+------------+
4 rows in set (0.00 sec)

Ce qui suit est la vue 'Info' créée sur la base de la table 'Student_info'

mysql> Select * from Info;
+------+---------+------------+
| Id   | Name    | Subject    |
+------+---------+------------+
| 101  | YashPal | History    |
| 105  | Gaurav  | Literature |
| 125  | Raman   | Computers  |
| NULL | Ram     | Computers  |
+------+---------+------------+
4 rows in set (0.00 sec)

Maintenant, dans la requête suivante, nous mettrons à jour la vue 'Info' −

mysql> Update info set id = 130 where Name = 'Ram';
Query OK, 1 row affected (0.88 sec)

mysql> Select * from Info;
+------+---------+------------+
| Id   | Name    | Subject    |
+------+---------+------------+
| 101  | YashPal | History    |
| 105  | Gaurav  | Literature |
| 125  | Raman   | Computers  |
| 130  | Ram     | Computers  |
+------+---------+------------+
4 rows in set (0.00 sec)

L'ensemble de résultats ci-dessus montre que la vue 'Info' a été mis à jour.

mysql> Select * from student_info;
+------+---------+------------+------------+
| id   | Name    | Address    | Subject    |
+------+---------+------------+------------+
| 101  | YashPal | Amritsar   | History    |
| 105  | Gaurav  | Chandigarh | Literature |
| 125  | Raman   | Shimla     | Computers  |
| 130  | Ram     | Jhansi     | Computers  |
+------+---------+------------+------------+
4 rows in set (0.00 sec)

Le résultat défini ci-dessus montre que lorsque nous mettons à jour la vue nommée 'info', la table de base est également mise à jour.

Ci-dessous se trouve une vue nommée 'info_less' créée à partir de la vue 'info', lorsque nous mettrons à jour la vue 'info', elle sera également mise à jour.

mysql> Select * from info_less;
+------+-------+-----------+
| Id   | Name  | Subject   |
+------+-------+-----------+
| 125  | Raman | Computers |
| 130  | Ram   | Computers |
+------+-------+-----------+
2 rows in set (0.00 sec)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer
Article précédent:Entrez la requête MySQLArticle suivant:Entrez la requête MySQL