【RoR】Ruby on Rails Part11at PHP
【RoR】Ruby on Rails Part11 - 暇つぶし2ch239:nobodyさん
11/01/29 13:25:51
RailsでMySQLを使っているときのトランザクションについて教えてください。

Book.transaction do
処理1
処理2
end

このようなコードを書いた場合、
処理1と処理2がいずれも実行されるか、いずれも実行されないか
を保障するというのは理解できるのですが、
処理1と処理2の間に別プロセスがBookテーブルに変更を加えてしまうことはあり得ますか?

具体的には、Bookテーブルにcountというカラムがありまして
この本を保持する人の人数を保持しています。
ユーザーからのあるアクションによって、複数のbookのcountを更新する必要があるのですが、
Aさんが更新中にBさんが更新してしまうと整合性が取れなくなってしまう問題に当たっています。

この更新処理を上のコードのトランザクションで囲めば解決されるのでしょうか?


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch