Silverlight アプリケーション用の WCF Web サービスを作成しています。変更時に読み取り/書き込みロックされるレコードが必要です。
MySQL バージョン 5.5.11 を使用しています。
具体的には、リクエストが変更中に行からデータを読み取らないようにしたいと思います。
UPDATE と SELECT の 2 つの SQL コマンドは、実際には非常に単純で、次のようになります。
更新(書き込み/読み取りのためにロックする必要があります):
UPDATE user SET user = ..... WHERE id = .....
選択 (上記のクエリからロックされている場合は読み取れないはずです):
SELECT * FROM user WHERE id = .....
これが私が試したものですが、まったく機能しないか、何もロックしていないようです:
START TRANSACTION;
SELECT user
FROM user
WHERE id = 'the user id'
FOR UPDATE;
UPDATE user
SET user = 'the user data'
WHERE id = 'the user id';
COMMIT;