• システム開発に関わる内容をざっくりと書いていく

同時実行制御

楽観ロック悲観ロックの考え方はとりあえず置いておいて、データ更新する場合の対策としては下記。

1、トランザクションを開始する。(トランザクションの間にロックがかかる)

2、更新対象のレコードを「with (xlock)」(排他ロック)で取得してくる。(この時点で取得したレコードは変更されないことになる)

3、更新対象のレコードが1、で取得してくる前の状態と同じであるかチェック(バージョン情報やUpdateTimeで)して、違う場合はロールバックで終了。(ここはロジックによってはいらないかもしれない)

4、更新を実行する。(コミット)

5、トランザクション終了でロックを解除する。