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