アトミックぐぬぅ

ウェブで使ってる SQL で UPDATE で col = col + 1 とかしてる時に更新前の値がなんだったか正確に取得したいのだけどいい方法が思いつかない。

・ロックするよ派
 → これは厳しい

・直前で SELECT して取得するよ派
 → 取得後に他のトランザクションが値を書き換えてて、その後にこっちが処理してるかもしれず。

・直前で SELECT して UPDATE の WHERE にその値を指定するよ派
 → 対象行がとれなかったら他の色々な処理も含むトラ全体をロールバックしてリトライするのかぁ。。。


うーん、不正確になるか、処理がとても遅くなる場合があるかのどちらかになるなぁ。
単純に UPDATE の結果を SELECT する方法があればいいのに(MS の拡張にはそういうのがあるっぽい)