基本情報技術者データの制約・問い合わせ・通信の境界オリジナル・公式資料照合難易度
在庫行にversion列がある。読んだversion=6を条件にUPDATE stock SET qty=9,version=7 WHERE id=1 AND version=6;を実行したが、更新行数は0だった。他の処理が先に更新した可能性への対応はどれか。
A
version列を全利用者で常に0へ戻す
版による競合検知の前提を壊す操作である。
B
最新値を読み直し、競合として業務ルールに従って再判断する★ 正解
version不一致を検知したため、古い前提のまま上書きせず、新しい在庫と業務条件を確認する。
C
version条件を外して必ず上書きする
競合検知を無効にして他処理の更新を失うおそれがある。
D
更新行数0を在庫更新成功として扱う
条件に一致しておらず、要求した更新は実行されていない。
解説
version不一致を検知したため、古い前提のまま上書きせず、新しい在庫と業務条件を確認する。
根拠資料・確認情報
対応範囲:2026年度 基本情報技術者試験 科目A・B/シラバスVer.9.2
資料確認日:2026-11-02
アプリ内の初回回答データ
回答データを読み込んでいます。
同じレッスンの問題
問題 1
受注明細.order_idが受注.idを参照し、外部キーにON DELETE RESTRICTが指定されている。明細が残る受注を削除しようとするとどうなるか。
問題 2
列scoreに10、NULL、30の3行だけがある。SELECT COUNT(*) FROM t WHERE score <> 10; の結果はどれか。
問題 3
SELECT列の値が表Aでは1,1、表Bでは1,2である。Aの結果とBの結果をUNION ALLで結合すると行数は幾つか。
問題 4
4行の表tでcolumn_aは2行だけNULL、column_bは全行で非NULLである。COUNT(column_a),COUNT(column_b),COUNT(*)の組はどれか。