ORACLE MASTER Silver SQL 26ai更新・定義・トランザクションの判断オリジナル・公式資料照合難易度★★★★☆

Oracle AI Database 26aiで、counter_t(id PRIMARY KEY,n NUMBER)の(1,10)はCOMMIT済みで、audit_ids(id NUMBER PRIMARY KEY)は空である。自動COMMITはOFF、制約は即時検査で、トリガー等はない。SQLクライアントはINSERTがエラーになっても次の文へ進む設定で、次を同一セッションで順に実行する。最後のnとaudit_idsの行数はどれか。 UPDATE counter_t SET n = 20 WHERE id = 1; INSERT INTO audit_ids(id) SELECT 1 FROM dual UNION ALL SELECT 1 FROM dual; COMMIT;

A
n=10、audit_idsは0行

失敗したINSERTより前に成功したUPDATEまで自動的に取り消されるわけではありません。最後のCOMMITでn=20が確定します。

B
n=20、audit_idsは0行★ 正解

INSERTは文単位で全体を取り消しますが、先行するUPDATEは保持されます。処理継続後のCOMMITでそのUPDATEを確定します。

C
n=20、audit_idsは1行

即時制約違反で失敗したINSERTは、先に挿入できた行も含めて文全体が取り消されます。1行だけ残ることはありません。

D
n=20、audit_idsは2行

audit_idsの主キー制約に同じ1を2行格納できません。制約は即時検査で、INSERT文は失敗します。

解説

主キー1が重複するため、INSERT文全体が失敗してその文による変更はすべて取り消されます。先に成功したUPDATEは同じトランザクションに残っており、自動的には取り消されません。クライアントが処理を続けてCOMMITするため、n=20だけが確定し、audit_idsは0行です。

根拠資料・確認情報

対応範囲:Oracle AI Database 26ai SQL Associate(1Z0-171-JPN)

資料確認日:2026-10-29

同じレッスンの問題

アプリで毎日学習しよう

ゲーミフィケーションで ORACLE MASTER Silver SQL 26ai 合格を目指す。無料・課金なし。

更新: 2026/10/28
Oracle AI Database 26aiで、counter_t(id PR | ORACLE MASTER Silver SQL 26ai 練習問題・解説 | Mondaily