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