2012-05-09 147 views
2

MySQL的優化版本:v5.0.95MySQL的InnoDB的交易+鎖定

基本上我有客戶想獲得的數據 - 每個客戶端應該只得到唯一的行。

START TRANSACTION; 

SELECT id where result='new'; 

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

COMMIT; 

SELECT語句LOCK IN SHARED MODE還是讓其他客戶端讀取數據,這似乎是一個問題。

基本上我需要數據選擇一次,更新,而不是由另一個客戶讀取。

回答

4

SELECT FOR UPDATE會阻塞另一個讀,而LOCK IN SHARED MODE將允許讀取,但不允許更新從另一個客戶端

+0

謝謝,這確實起作用。 – Michael