1
我要執行此代碼: 這個想法是獲得最低MID
尚未使用的項目(mutex = 0
)。爲了防止其他線程讀取此行,使用FOR UPDATE
,並且UPDATE
減少mutex
。MySQL InnoDB Global Var?
START TRANSACTION;
SELECT MID as m, sender, receiver, content FROM queue WHERE mutex = 0 ORDER BY MID ASC limit 1 FOR UPDATE;
UPDATE queue set mutex = -1 WHERE MID = m;
COMMIT;
m
但是在執行SELECT
線時僅已知的。我如何在下一個查詢中訪問它,而不會中斷查詢,這會阻止TRANSACTION
?
P.S .:我知道互斥是不同於我使用它的東西。
真棒,不知道MySQL支持這一點。 – bluewhile 2013-03-16 17:13:19