視圖with check option語句詳解

此文是記錄數(shù)據(jù)庫平常的學(xué)習(xí)遇見的一些知識點

視圖WITH CHECK OPTION子句

- 引用mysql官方文檔的一句話:可以為可更新視圖指定 WITH CHECK OPTION 子句,
以防止插入 select_statement 中 WHERE 子句不為真的行。它還會阻止更新 WHERE 子句為true的行,
但更新會導(dǎo)致它不為true(換句話說,它會阻止可見行更新為不可見的行)。
在可更新視圖的 WITH CHECK OPTION 子句中,LOCAL 和 CASCADED 關(guān)鍵字在根據(jù)另一個視圖定義視圖時確定檢查測試的范圍。
如果沒有給出關(guān)鍵字,則默認(rèn)為 CASCADED 。
建立測試表和兩個視圖
image

image

image
image

image

這就可以明白有with check option的視圖和沒有with check option的視圖之間的區(qū)別

image
- 沒有with語句的視圖,可以插入符合數(shù)據(jù)庫語法約束的數(shù)據(jù),可是不會在視圖里顯示出來
- 有with語句的視圖,它會阻止可見行更新為不可見的行,
通俗講就是插入的數(shù)據(jù)必須符合視圖的約束,并且可以在視圖里顯示出來。否則它會阻止操作?。?!
  • 1.對于update,有with check option,要保證update后,數(shù)據(jù)要被視圖查詢出來
  • 2.對于delete,有無with check option都一樣
  • 3.對于insert,有with check option,和update相同 要保證insert后,數(shù)據(jù)要被視圖查詢出來
  • 4.對于沒有where 子句的視圖,也就沒有視圖自己的約束,因此使用with check option是多余的
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • ORA-00001: 違反唯一約束條件 (.) 錯誤說明:當(dāng)在唯一索引所對應(yīng)的列上鍵入重復(fù)值時,會觸發(fā)此異常。 O...
    我想起個好名字閱讀 6,001評論 0 9
  • ORACLE自學(xué)教程 --create tabletestone ( id number, --序號usernam...
    落葉寂聊閱讀 1,253評論 0 0
  • 今天看到一位朋友寫的mysql筆記總結(jié),覺得寫的很詳細(xì)很用心,這里轉(zhuǎn)載一下,供大家參考下,也希望大家能關(guān)注他原文地...
    信仰與初衷閱讀 4,838評論 0 30
  • MySql 執(zhí)行 DELETE FROM Table 時,報 Error Code: 1175. You are ...
    張小白_2540閱讀 3,259評論 0 1
  • 昨天帶娃樓下溜達(dá),娘仨你追我趕玩起了抓人游戲,繞著小區(qū)大熊的一圈又圈地跑,歡笑聲響徹兩幢樓。 你們陪媽媽上樓取跳繩...
    記錄我的生活閱讀 301評論 0 1

友情鏈接更多精彩內(nèi)容