表定義に基づいて作成された"システム担当者"表において、トランザクションAの複合文内のSQL文全てを正常終了させるためにaに入れる字句はどれか。ここで、実線の下線は主キーを表す。 〔表定義〕 CREATE TABLE システム担当者 ( システム番号 INTEGER, 担当者番号 INTEGER NOT NULL, CONSTRAINT PK_システム番号 PRIMARY KEY(システム番号), CONSTRAINT UK_担当者番号 UNIQUE(担当者番号) DEFERRABLE INITIALLY IMMEDIATE ) 〔トランザクションAの複合文内のSQL文〕 SET CONSTRAINTS [ a ]; UPDATE システム担当者 SET 担当者番号 = 222 WHERE システム番号 = 1234; UPDATE システム担当者 SET 担当者番号 = 111 WHERE システム番号 = 6789; COMMIT;

値の入替えは制約をDEFERREDにして検査を先送りする

データベーススペシャリスト試験2025年度 秋期 午前II8/関係モデル / 制約

システム担当者表:
システム番号担当者番号
1234111
6789222

選択肢

正解と解説

正解: UK_担当者番号 DEFERRED

2件の担当者番号を入れ替える更新では、1件目を更新した時点で他方と値が重複してしまう。この表の一意性制約はDEFERRABLEで宣言されているので、SET CONSTRAINTSで検査タイミングをDEFERREDに切り替えれば、検査がコミット時まで先送りされる。2件目の更新が終わった時点では重複が解消しているため、両方のUPDATEが正常終了する。主キー側は宣言にDEFERRABLEが付いておらず、遅延指定の対象にできない。

選択肢ごとの解説

出典:令和7年度 秋期 データベーススペシャリスト試験 午前II 問8(IPA)

同じ分野の他の問題

最終更新:2026-08-25/解説・選択肢ごとの解説は資格暗記が独自に作成しています。問題文と選択肢の出典は上記のとおりです。