1つのトランザクションの中で、検索(SELECT文)を発行した時に、ロックをしたいことがあるかと思います。 というか、必要が生じました。 とある処理で、数値が不整合を起こす障害の原因調査をしたのですが、これが酷い。 処理自体は、あるテーブルの金額項目に対して、ユーザーが画面から入力した数値を加算するっていうものです。 仕様書に書いてるのは、こんな内容。 1.SELECT文でテーブルAからデータ抽出 2.1で取得した金額に、画面で入力した金額を加算 3.2の結果をテーブルAに上書きする。 1で取得した数値を加工して上書きするって仕様なんですから、SELECT文を発行する時にロックをかけないといけません。 しかし、この処理を実装したプログラマは違う考えがあったらしく、ロックを掛けなかったようです。 ...おい、ふざけるなよ。 というわけで、SELECT文の発行と同時に行ロックを実行します。 S