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依舊如之前的規則。

   

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM