ORACLE MASTER Silver SQL 26ai表・制約・一時表とビューオリジナル・公式資料照合難易度★★★☆☆
Oracle AI Database 26aiで通常表staff(emp_id PRIMARY KEY, dept_id NUMBER)に(1,10)だけがある。次の単純で更新可能なビューを作成済みで、INSTEAD OF等のトリガーや追加制約はない。続くUPDATEの説明はどれか。 CREATE VIEW dept10_staff AS SELECT emp_id, dept_id FROM staff WHERE dept_id = 10 WITH CHECK OPTION; UPDATE dept10_staff SET dept_id = 20 WHERE emp_id = 1;
A
UPDATEは成功し、staffは20、ビューからだけ行が消える
CHECK OPTIONがなければ起こり得る変更ですが、この条件では行がビューの外へ出る更新を禁止します。
B
UPDATEは成功し、ビューだけ20、staffは10のまま
通常のビューは独立したデータコピーではありません。更新可能なビューの変更は基表へ作用します。
C
WITH CHECK OPTIONがあるビューでは、条件内の更新も含めすべてのUPDATEが禁止される
全ての更新を禁止するWITH READ ONLYとは別の指定です。ここで拒否されるのは条件から外れる変更です。
D
UPDATEは拒否され、staffのdept_idは10のまま★ 正解
更新後の行がビューの条件を満たさないため、CHECK OPTIONに反します。
解説
このビューのCHECK OPTIONは、ビューの条件から外れる行を作る変更を禁止します。部署20への変更はdept_id = 10を満たさないので文は失敗し、元の行は部署10のままです。ビューを全面的な読取り専用にする指定ではありません。
根拠資料・確認情報
対応範囲:Oracle AI Database 26ai SQL Associate(1Z0-171-JPN)
資料確認日:2026-10-29
同じレッスンの問題
問題 1
Oracle AI Database 26aiで、通常の永続表t(id PRIMARY KEY, amount NUMBER)の(1,100)はCOMMIT済みである。同一セッションで次を順に実行し、CREATE TABLEも成功した。自動COMMITはOFF、別セッションの更新やトリガーはない。最後のtのamountとnew_marker表の状態はどれか。
UPDATE t SET amount = 150 WHERE id = 1;
CREATE TABLE new_marker (id NUMBER);
ROLLBACK;
問題 2
Oracle AI Database 26aiで次の表を作成した。列qtyにNOT NULL制約はなく、他の制約・トリガーもない。次のA、Bをそれぞれ実行した場合の成否はどれか。
CREATE TABLE stock (qty NUMBER CHECK (qty > 0));
A: INSERT INTO stock(qty) VALUES(NULL);
B: INSERT INTO stock(qty) VALUES(-1);
問題 3
Oracle AI Database 26aiで次のグローバル一時表を作成済みである。同一セッションで2行INSERTし、COMMITした直後の説明はどれか。別のDMLやDDLは実行しない。
CREATE GLOBAL TEMPORARY TABLE work_ids (id NUMBER)
ON COMMIT DELETE ROWS;