atoly回答ポイント 70ptウォッチ 1
1229508526

排他処理に関して教えてください。

DBは、MySQL4.2 InnoDBです。
言語は、PHP(フレームワークCakePHP)

レコードを編集する際、編集画面に入る時、そのレコードのフラグをチェックし、Trueならば編集画面に入れ、Falseならば入れない仕組みを作りたいと思っております。
しかし、select文でフラグを確認し、Trueならばアップデート文でFalseに変更し、編集画面に入るやり方ですと、ほぼ同時にアクセスがあった場合、両方ともに編集画面に入れてしまいますよね?

簡単なフローを画像にしました。

トランザクションを掛けてる間、セレクトもさせない方法はあるのでしょうか。
テーブル自体をロックするしかないのでしょうか。

※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。
ログインして回答する

みんなの回答

この質問へのコメント

この質問への反応(ブックマークコメント)

質問の情報

登録日時
2008-12-17 19:08:48
終了日時
2008-12-18 13:59:04
回答条件
回答にURL必須 1人3回まで

この質問のカテゴリ

この質問に含まれるキーワード

innodb56CakePHP227トランザクション58PHP7798フレームワーク285フラグ135アップデート682dB1997レコード916編集画面134

人気の質問

メニュー

PC版