2

MySQL バージョン: v5.0.95

基本的に、データを取得しようとするクライアントがいます。各クライアントは一意の行のみを取得する必要があります。

START TRANSACTION;

SELECT id where result='new';

UPDATE SET result='old' WHERE id=$id;

COMMIT;

LOCK IN SHARED MODEselect ステートメントでは、他のクライアントがデータを読み取ることができますが、これは問題のようです。

基本的に、データを一度選択して更新し、別のクライアントが再度読み取らないようにする必要があります。

4

1 に答える 1

5

SELECT FOR UPDATE別の読み取りをブロックしますLOCK IN SHARED MODEが、読み取りは許可しますが、別のクライアントからの更新は許可しません

于 2012-05-11T09:38:45.810 に答える