16.20 - WITH CHECK OPTION - Teradata Database - Teradata Vantage NewSQL Engine

Teradata Vantage™ SQLデータ定義言語 構文規則および例

Product
Teradata Database
Teradata Vantage NewSQL Engine
Release Number
16.20
Release Date
2019年3月
Content Type
プログラミング リファレンス
Publication ID
B035-1144-162K-JPN
Language
日本語 (日本)

テーブル内で、INSERTまたはUPDATEリクエストによって更新可能な行を制限します。

次のルールは更新可能なビューおよびWITH CHECK OPTIONに適用されます。

  • WITH CHECK OPTIONを指定した場合、ビューは更新可能でなければなりません。ビューが更新可能でない場合、WITH CHECK OPTIONを指定しても何も影響しません。

    また、ビューを介して元の基本テーブルに対するINSERTまたはUPDATE操作を行っても、WHERE句条件がFALSEと評価する行は作成されません。

  • 更新可能なビューにWITH CHECK OPTIONが指定されていない場合は、ビューを定義している、問合わせに含まれたWHERE句は、ビューを介して実行されるINSERTまたはUPDATEリクエストに対して無視されます。
  • ネストされたビューを作成する場合は、単一の基本テーブルだけを参照するように定義することができます。このように定義することで、これらのビューが更新可能になります。その場合、ビュー定義にWITH CHECK OPTIONがあると、そのビューのWHERE句および元のビューのWHERE句が、INSERTまたはUPDATEリクエストの制約に対して検証されます。

例: 名前や職種のみのビューの作成

次のリクエストは、employee(従業員)テーブルのビューを作成し、部門300の従業員の名前と職種にだけアクセスすることを示します。

    CREATE VIEW dept300 (name, jobtitle) AS 
     SELECT name, jobtitle 
     FROM employee 
     WHERE DeptNo = 300 
    WITH CHECK OPTION;

WITH CHECK OPTIONによって、DeptNoが300でない行について、このビューを介してemployeeにINSERTすることと、employeeを更新することが防止されます。