1、有些视图是不可更新的,因为这些视图的更新不能惟一有意义地转换为相应的根本表。

2、一般来说,能够更新行列子集视图。除列子集视图外,实践上还能够更新一些视图。

实例

-- 创立视图 ldq_t1CREATE VIEW ldq_t1 ASSELECT  *FROM  t3WHERE id1 > 10 WITH CHECK OPTION ;-- 查问ldq_t1中的所有后果SELECT * FROM ldq_t1; -- 创立视图 ldq_t2CREATE VIEW ldq_t2 ASSELECT  *FROM  ldq_t1WHERE id1 < 30 WITH LOCAL CHECK OPTION ; -- 创立视图 ldq_t3CREATE VIEW ldq_t3 ASSELECT  *FROM  ldq_t1WHERE 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_t3SELECT * 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;  -- 执行胜利

以上就是mysql更新视图的限度,心愿对大家有所帮忙。更多mysql学习指路:Mysql