問題プレビューID: 6840c75d

問 31

“商品” 表に対して,更新 SQL 文を実行するトランザクションが,デッドロックの発生によって異常終了した。異常終了後の “商品” 表はどれか。ここで,“商品” 表に対する他のトランザクションは,参照は行うが更新はしないものとする。

商品

商品コード商品名販売単価
A010AAA2,500
B020BBB1,000
C030CCC4,500

〔更新 SQL 文〕

DELETE FROM 商品 WHERE 商品コード = 'B020'
解説

トランザクションがデッドロックによって異常終了した場合,そのトランザクションはロールバックされ,更新は取り消されて開始前の状態に戻る(トランザクションの原子性)。したがって,実行途中だった DELETE 文による B020 の削除はなかったことになり,“商品” 表は元の 3 行(A010,B020,C030)のままとなる。他のトランザクションは参照のみで更新を行わないため,表の内容に影響はない。

したがって,正解は「イ」です。