我正在爲一個Silverlight應用程序創建一個WCF Web服務,並且我需要在修改時將一條記錄讀取/寫入鎖定。悲觀鎖定記錄?
我正在使用MySQL版本5.5.11。
更具體地說,我想阻止從行中讀取數據的請求,當它被修改時。
兩個SQL的UPDATE命令和SELECT實際上是非常簡單的,是這樣的:
更新(應該鎖定爲讀/寫):
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;
爲什麼即使在交易中執行此操作? 'UPDATE'獨立運行。也就是說,你所嘗試的應該仍然有效;是什麼讓你覺得它沒有? – eggyal