WITH CHECK OPTION の使用

ビューの作成時に、SQL 標準の WITH CHECK OPTION [ CASCADE ] 句を使用できます。このオプションを使用してビューが作成されていると、ビューの定義に矛盾するデータ更新は拒否されます。たとえば、以下のステートメントを使用して incidents_acme ビューが定義されているとします。

CREATE VIEW incidents_acme AS
   SELECT * FROM Internet_inc WHERE taxid = 'B78596011'
WITH CHECK OPTION

以下の INSERT ステートメントは失敗します。

INSERT INTO incidents_acme (
iinc_id
, summary
, ttime
, taxid
, specific_field1
, specific_field2)
VALUES (
6
, 'Error in ADSL Router'
, '31-mar-2005 22h 35m 24s'
, 'B78596015'
, '5'
, '6')

このステートメントは、 taxid フィールドの値が incidents_acme ビューの WHERE 条件を満たしていないために失敗します。

WITH CHECK OPTION CASCADE 句を使用してビューが作成された場合、Virtual DataPort サーバーは挿入された値がビューの WHERE 条件およびサブビューの WHERE 条件を満たしているかどうかを確認します。

「クエリの自動簡素化」が有効な場合、派生ビューに対して INSERTUPDATE 、または DELETE のクエリを実行すると、このビューが WITH CHECK OPTION オプションを指定して作成されているとみなされます。これにより、挿入、更新、削除するデータが、ビューの定義の WHERE 条件を満たすかどうかが確認されます。