视图的检查选项

当使用with check option字句创建视图时,MySQL会通过视图检查选项去检查正在更改的每个行,例如插入、更新、删除,以使其符合视 图的定义。MySQL允许基于另一个视图创建视图,它还会检查依赖视图中的规则以保持一致性

 

为了确定检查的范围,mysql提供了两个选项 1、cascade(默认)

2、local

 

cascade:当我们在操作视图的时候,会递归的去找当前视图所依赖的视图,如果当前视图后面定义了有with local check option这样的检查选项, 那么所依赖的视图都会默认被附加上这个检查选项,操作的数据只有满足这个视图和所依赖的视图条件,才会执行成功; 如果当前视图后面没有定义 with local check option这样的检查选项,那么操作的数据时,只需要检查是否满足所依赖的视图的条件,当所依赖的视图没有with local check option 这样的检查选项,那么我们在操作数据的时候,将不对没有检查选项的视图做检查

 

local: 当我们在操作视图的时候,会递归的去找当前视图所依赖的视图,如果当前视图以及依赖的视图后面定义了有with local check option这样的 检查选项,那么将会去判定我们所操作的数据是否满足这个视图的条件,当在递归的过程中找到某一个视图在定义的时候,没有增加with local check option 这样的检查选项,此时我们在操作数据的时候,将不对这个视图的条件做检查

 

具体的代码演示非常绕,建议去我写的对应sql文件查看