首页 > 代码库 > 所有的视图是否都可以更新?为什么?

所有的视图是否都可以更新?为什么?

  

  (1)若视图的字段是来自字段表达式或常数,则不允许对此视图执行INSERT、UPDATE操作,允许执行DELETE操作;
      (2)若视图的字段是来自库函数,则此视图不允许更新;
      (3)若视图的定义中有GROUP BY子句或聚集函数时,则此视图不允许更新;
      (4)若视图的定义中有DISTINCT任选项,则此视图不允许更新;
      (5)若视图的定义中有嵌套查询,并且嵌套查询的FROM子句中涉及的表也是导出该视图的基表,则此视图不允许更新;
      (6)若视图是由两个以上的基表导出的,此视图不允许更新;
      (7)一个不允许更新的视图上定义的视图也不允许更新;
      (8)由一个基表定义的视图,只含有基表的主键或候补键,并且视图中没有用表达式或函数定义的属性,才允许更新。