SELECT ... FOR UPDATE
トランザクションが完了する(コミットまたはロールバックされる)まで、書き込み(排他的)ロックでレコードをロックします。
レコードを選択し、更新するまで変更されないようにするには、トランザクションを開始し、SELECT ... FOR UPDATE
を使用してレコードを選択します。 、いくつかのクイック処理を実行し、レコードを更新してから、トランザクションをコミット(またはロールバック)します。
SELECT ... FOR UPDATE
を使用する場合 トランザクションの外部(自動コミットオン)でも、ロックはすぐに解放されるため、必ずトランザクションを使用してロックを保持してください。
パフォーマンスのために、トランザクションを長時間開いたままにしないでください。更新はすぐに実行する必要があります。