WITH CHECK OPTIONは更新可能なビューに関するものです。ビューは通常、ユーザーがアクセスできる実テーブルの列および行を制限するために作成されます。実テーブル列の射影は、DELETE、INSERT、MERGE、SELECT、またはUPDATEリクエストのcolumn_nameリストで挙げられた列によって指定され、実テーブル行の制限はオプションのWHERE句によって指定されます。
WITH CHECK OPTION句は、WHERE句が定義する行に対して、INSERTまたはUPDATEリクエストにより影響を受ける可能性のあるテーブル内の行を制限する整合性制約オプションです。WITH CHECK OPTIONを指定しないと、WHEREで指定される整合性制約は更新時にチェックされません。実テーブル制約は、この回避に影響されずに強制的に続行します。
ビュー定義によって指定されたWHERE句条件に従わない正当な理由がない限り、すべての更新可能ビュー定義で常にWITH CHECK OPTION句を指定して、データベースの保全性を保護してください(システム保全性の維持のさまざまな側面について詳しくは、<Teradata Vantage™ - データベースの設計、B035-1094>および<Teradata Vantage™ - Advanced SQL Engineセキュリティ管理ガイド、B035-1100>を参照)。
WITH CHECK OPTIONの指定 | ビューを介してテーブルに実行された挿入または更新の結果 |
---|---|
指定する場合 | WHERE句を満たす行だけを挿入または更新します。 |
指定しない場合 | ビューの定義に使用されたWHERE句を無視します。 |
例えば、クエリーはビューを介して表示できる行をcolumn_1が10より大きい値に制限するWHERE column_1 > 10を指定でき、実テーブルは、テーブル定義内の制約がその範囲に値を挿入するのを妨げない限り、10以下の値を持つことになります。