2010-07-24 21 views
1

我有兩個工作從MySQL表中拉。他們都希望得到一排,做一些工作,並用結果更新該行,但我不希望他們選擇同一行進行更新。什麼是使用mysql/innodb引擎鎖定select中的一行的最好方法,以便它對其他線程不可用,但允許它們選擇其他記錄?那可能嗎?使用MySQL innodb作爲隊列?

謝謝!

回答

0

您可以在選擇語句的末尾添加「FOR UPDATE」修飾符。即

SELECT * FROM table WHERE pkey = N FOR UPDATE;

..但我想你應該小心使用InnoDB作爲隊列和性能目標。隊列是面向堆棧的,需要不同的工具來解決InnoDB(和MySQL)正在試圖解決的問題。