В mysql мы используем @ для пользовательской переменной, которая остается живой, пока соединение не будет закрыто. В Java, когда несколько потоков совместно использовать один пул соединений, при вызове хранимой процедуры одновременно, чтобы получить рейтинг:mysql пользовательский переменный параллелизм в пуле соединений?
BEGIN
SET @rank := 0;
SELECT @rank := @rank + 1 as rank FROM ...
END
Если 2 нити вызова процедуры в то же время, без синхронизации @rank, возможно @rank может вернуть неожиданный результат?
Есть ли лучший способ справиться с этой ситуацией?
Спасибо!
Спасибо за ваш ответ. На самом деле я попытался использовать локальные переменные. Но когда я кодирую 'SET rank: = 0; SELECT rank: = rank + 1 ... 'это дает мне ошибку, говоря, что' rank: = rank + 1 'неверно, потому что': = 'не поддерживается. Не знаю, почему. – Lee