0
在mysql中,我們使用@作爲用戶定義變量,它在連接關閉之前保持活動狀態。在java中,當多個線程共享一個連接池,同時調用存儲過程同時獲得排名:連接池中的mysql用戶定義變量併發性?
BEGIN
SET @rank := 0;
SELECT @rank := @rank + 1 as rank FROM ...
END
如果兩個線程都在調用同一時間的程序,無需同步@rank,這可能@rank可能返回意外的結果?
有沒有更好的方法來處理這種情況?
謝謝!
感謝您的回答。其實我試過使用局部變量。但是當我編碼'SET rank:= 0; SELECT rank:= rank + 1 ...'它給了我錯誤,說'rank:= rank + 1'是錯誤的,因爲':='不被支持。不知道爲什麼。 – Lee 2012-02-13 20:57:45