MySQL 8.0发行说明
MySQL 8.0源代码文档10bet官方网站
这检查选项
可以给出可更新视图的子句以防止插入到其中的行在哪里
条款在select_statement.
不是真的。它还可以防止更新到哪个行在哪里
条款是真实的,但更新会导致它不是真的(换句话说,它可以防止可见行被更新为不可见的行)。
在一个检查选项
可更新视图的子句,当地的
和级联
关键字确定当视图以另一个视图定义时检查测试的范围。何时没有给出关键字,默认值是级联
。
检查选项
测试是标准符合标准操作:
和
当地的
, 风景在哪里
检查子句,然后检查递归到底层视图并应用相同的规则。和
级联
, 风景在哪里
检查子句,然后检查递归到潜在的视图,添加使用级联检查选项
对他们来说(出于支票的目的;他们的定义保持不变),并适用相同的规则。没有检查选项,视图
在哪里
没有检查子句,然后检查递归到底层视图,并应用相同的规则。
考虑下表和一组视图的定义:
创建表T1(A int);创建视图v1作为从t1中选择*,其中a <2带检查选项;创建视图v2作为从v1中的选择*,其中a> 0带有本地检查选项;创建视图v3作为从v1的选择*,其中a> 0带级联检查选项;
在这里v2.
和v3
视图是在另一个视图方面定义的,v1.
。
插入v2.
检查它当地的
选中选项,然后检查递归到v1.
并再次应用规则。规则v1.
导致检查失败。检查v3
也失败:
MySQL>插入V2值(2);错误1369(hy000):检查选项失败的“test.v2”mysql>插入到v3值(2);错误1369(HY000):检查选项失败'test.v3'