Maison > Article > base de données > Explication détaillée de la mise à jour de la vue dans MySQL
La possibilité de mise à jour d'une vue est liée à la définition de la requête dans la vue
Instruction SQL contenant les mots-clés suivants : fonction d'agrégation ( somme, min, max, nombre), distinct, groupe par, avoir, union ou uinon tous
Vue constante
3.sélectionner Contient des sous-requêtes
4.join
5.à partir d'une tentative non modifiable
6.La sous-requête de la clause Where fait référence à la table de la clause From
AVEC [EN CASCADE | LOCAL] CHECK OPTION détermine les conditions de mise à jour de la vue.
LOCAL signifie que tant que les conditions de cette vue sont remplies, elle peut être mise à jour
EN CASCADE
Ensuite, toutes les conditions d'affichage de cette vue doivent être remplies avant qu'elle puisse être mise à jour
S'il n'est pas clair s'il s'agit d'un mode local ou en cascade, la valeur par défaut est cascade
Afin de faciliter la compréhension, je vais l'illustrer à travers des exemples
On sait que la structure des données de la table t3 est la suivante :
-- 创建视图 ldq_t1 CREATE VIEW ldq_t1 AS SELECT * FROM t3 WHERE id1 > 10 WITH CHECK OPTION ; -- 查询ldq_t1中的所有结果 SELECT * FROM ldq_t1; -- 创建视图 ldq_t2 CREATE VIEW ldq_t2 AS SELECT * FROM ldq_t1 WHERE id1 < 30 WITH LOCAL CHECK OPTION ; -- 创建视图 ldq_t3 CREATE VIEW ldq_t3 AS SELECT * FROM ldq_t1 WHERE id1 < 30 WITH CHECK OPTION ; -- 更新视图ldq_t2(只有ldq_t2中存在的数据都可以更新) SELECT * FROM ldq_t2; -- 查看ldq_t2当前记录 UPDATE ldq_t2 SET id1=5 WHERE id2=22; -- 可以执行成功 UPDATE ldq_t2 SET id1=35 WHERE id2=22; -- 将会报错CHECK OPTION failed(因为执行该语句之后,id2=22记录将从ldq_t2消失) UPDATE ldq_t2 SET id1=28 WHERE id2=22; -- 可以执行成功 -- 更新ldq_t3 SELECT * FROM ldq_t3; UPDATE ldq_t3 SET id1=5 WHERE id2=22; -- 将会报错CHECK OPTION failed(因为数据更新之后,必须还要保证其仍然在ldq_t3和ldq_t1之中, 该语句执行后id2=22记录将从ldq_t1消失) UPDATE ldq_t3 SET id1=15 WHERE id2=22; -- 能够执行成功 UPDATE ldq_t3 SET id1=35 WHERE id2=22; -- 将会报错CHECK OPTION failed(因为执行该语句之后,id2=22记录将从ldq_t3消失) DELETE FROM ldq_t3 WHERE id2=22; -- 执行成功
Résumé : AVEC
Lors de la mise à jour d'une vue modifiée avec LOCAL CHECK OPTION, il vous suffit de vous assurer que l'enregistrement mis à jour existe toujours dans la vue et aucune erreur ne sera signalée. Lorsque AVEC CASCADED CHECK OPTION modifie la vue, vous devez vous assurer que l'enregistrement mis à jour existe toujours dans la vue et dans les vues liées à la vue.
Ce qui précède est le contenu détaillé de la mise à jour de la vue dans MySQL. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !