mysql witch check option local_mysql8 参考手册-带有检查选项WITH CHECK OPTION 子句的视图...

WITH CHECK OPTION条款可以给出一个可更新视图来防止插入到行的量, WHERE在该条款 select_statement是不正确的。它还可以防止对WHERE 子句为true的行进行更新,但是更新将导致该行为true(换句话说,它防止将可见行更新为不可见行)。

在WITH CHECK OPTION可更新视图的子句中, 当根据另一个视图定义该视图时,LOCALand CASCADED关键字确定检查测试的范围。如果未指定任何关键字,则默认为CASCADED。

WITH CHECK OPTION 测试符合标准:

使用LOCAL,将WHERE检查view 子句,然后检查对基础视图的递归并应用相同的规则。

使用CASCADED,将WHERE检查view 子句,然后检查对基础视图的递归,将WITH CASCADED CHECK OPTION其添加到视图中(出于检查的目的;其定义保持不变),并应用相同的规则。

如果没有检查选项,则不检查view WHERE子句,然后检查递归到基础视图,并应用相同的规则。

考虑下表和视图集的定义:

CREATE TABLE t1 (a INT);

CREATE VIEW v1 AS SELECT FROM t1 WHERE a < 2

WITH CHECK OPTION;

CREATE VIEW v2 AS SELECT FROM v1 WHERE a > 0

WITH LOCAL CHECK OPTION;

CREATE VIEW v3 AS SELECT * FROM v1 WHERE a > 0

WITH CASCADED CHECK OPTION;

这里,v2和v3视图在另一视图定义的,v1。

v2根据其LOCAL检查选项检查的 插入,然后将检查重复到 v1并再次应用规则。v1导致检查失败的规则。的检查 v3也失败:

mysql> INSERT INTO v2 VALUES (2);

ERROR 1369 (HY000): CHECK OPTION failed 'test.v2'

mysql> INSERT INTO v3 VALUES (2);

ERROR 1369 (HY000): CHECK OPTION failed 'test.v3'

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值