質問: 例えば、 1,山田太郎,21(番号,名前,年齢)のレコードを Aさんが年齢を22歳へ変更する処理と Bさんが年齢を25歳へ変更する処理が同時(Aがわずかに先に)に実行された場合 最終的に、レコードが 1,山田太郎,25となると思うのですが、 この時、Aさんは22歳に変更したものだと思ってしまうと思うのですが これを回避する方法はあるのでしょうか。 根本的に考えが間違っている可能性もありますので、ご指摘などありましたらお願いたします。
回答: Bさんの更新が、Aさんのトランザクション中という前提なら通常は排他を使います。 Aさんは排他をかけて、Bさんの更新ができないようにします。 Bさんは排他中であれば更新を中止する。 というのが通常の処理になると思います。 トランザクション外ということになると、難しいですね。