Mysql5.7.6及之后版本中的LOCAL、CASCADED OPTION使用

 

 

5.7.6之前:

  • WITH  LOCAL CHECK OPTION

  会检验视图v4WHERE子句下的条件,但是不会检验底层视图v3的WHERE子句条件

  • WITH CASCADED CHECK OPTION

  会检查视图v4WHERE子句下的条件,然后检查底层视图v3的WHERE条件

  • 没有check option

  均不检查

 

5.7.6版本:

  • WITH  LOCAL CHECK OPTION

  会检验视图v4WHERE子句下的条件,然后检验底层视图v3的WHERE子句条件

  • WITH CASCADED CHECK OPTION

  会检查视图v4WHERE子句下的条件,然后检查底层视图v3的WHERE子句条件

  • 没有check option

  不会检查视图v4WHERE子句下的条件,但会检查底层视图三的WHERE子句条件

 

演示:

  • 创建表a1

  

  • 创建三个视图v1_a1、v2_a2、v3_a1

  

  v2_a1、v3_a1是基于视图v1_a1派生的.

 

  • 5.7.6版本之前
  1. 视图v2_a1使用local check option,insert 时只会测试v2_a1中的WHERE子句。
  2. 视图v3_a1使用cascaded check option,insert时会测试v3_a1中的WHERE子句,还会测试v1_a1中的WHERE子句

 

  • 5.7.6版本
  1. 使用local check option,insert时不仅要检查v2_a1中的WHERE子句,还会检查v1_a1中的WHERE子句;
  2. 使用cascaded依旧如之前的规则。

   

 

 

posted @ 2018-01-06 14:59  哈哈你笑咯  阅读(1701)  评论(0编辑  收藏  举报