問題
11
SQL
FOR UPDATE
SQLの問題に挑戦しよう!
問題
「FOR UPDATE」
行ロックを取得してください。
解答と解説(FOR UPDATE)
解説
LINE登録して解答を見る
※ご登録後トークルーム下部にあるメニュー内
「無料問題集※解答付き」を押すと
解答閲覧用URLが届きます
FOR UPDATEは選択した行に対して排他ロックを取得する構文です。トランザクション内で使用することで、他のセッションからの同時更新を防ぐことができます。金融処理や在庫管理など、同時実行によるデータ不整合を防ぐ必要がある場面で重要です。ロックを取得した行はCOMMITまたはROLLBACKまで他のトランザクションから変更できません。ただしロックの多用はデッドロックの原因となるため、使用範囲を最小限にする設計が求められます。
補足
ロックは競合制御に有効ですが、取得順序が不適切だとデッドロックが発生します。トランザクション設計時はロック順序を統一することが重要です。