mysqlでは、ユーザー定義変数に@を使用しています。この変数は、接続が閉じられるまで有効です。ランキングを取得するために、同時に、ストアドプロシージャを呼び出し中に複数のスレッドが、1つの接続プールを共有する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