视图

  • 创建
create [or replace] view 视图名称[(列名列表)] as select语句
-- 如果要替换视图,要加上or replace

  •  视图的检查选项

当使用WITH CHECK OPTION子句创建视图时,MySL会通过视图检查正在更改的每个行,例如 插入,更新,删除,以使其符合视图的定义。MySOL允许基于另一个视图创建视图,它还会检查依赖视图中的规则以保持一致性。为了确定检查的范围,mysql提供了两个选项:CASCADED 和LOCAL,默认值为 CASCADED。(如果创建视图时没有check [local | cascaded] check option,则插入更新删除时,条件是没有用的)

  1. 无with check option时,是不需要满足当前视图的条件的。并且对于底部视图(即该视图针对的视图),先判断底部视图是否有with check option语句,有的话,按照其规则(local或者cascaded)处理,没有的话则不需要满足底部视图的条件。
  2. with local check option时,需要满足当前视图的条件。对于底部视图,也是先看是否有指定的with check option语句,有的话对应处理,无则不需要满足底部视图的条件。
  3. with cascaded check option(cascaded可以省略)时,需要满足当前视图的条件。并且对于所有底部视图的条件,也需要一并满足,哪怕底部视图没有定义with check option语句。
  • 视图的更新

要使视图可更新,视图中的行与基础表中的行之间必须存在一对一的关系。

如果视图包含以下任何一项,则该视图不可更新:

 

 

 

posted @ 2023-06-30 16:24  WTSRUVF  阅读(20)  评论(0编辑  收藏  举报