ビューでのWITH CHECK OPTION句 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLデータ定義言語 詳細トピック

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
17.00
Published
2020年6月
ft:locale
ja-JP
ft:lastEdition
2021-03-30
dita:mapPath
ja-JP/jpx1556733107962.ditamap
dita:ditavalPath
ja-JP/jpx1556733107962.ditaval
dita:id
B035-1184
Product Category
Software
Teradata Vantage

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以下の値を持つことになります。