Как использовать User-defined @variable как безопасный поток в Mysql

116
7

При доступе к @variable в mysql, используя тот же объект соединения из Spring Framework. Это общепринято для всех пользователей, поэтому выглядит так, чтобы в запросе использоваться небезопасная переменная. Как использовать @variable альтернатив для пользовательской переменной в mysql.

Альтернативный запрос ниже одного с потоком в одном и том же объекте соединения.

select
@num := (@num + 1) as row_number
from
user u,
(select @num := 0);

спросил(а) 2021-01-25T17:29:32+03:00 4 месяца, 2 недели назад
1
Решение
63

Включение (select @num := 0) инициализирует переменную в начале запроса. Пользовательские переменные привязаны к отдельному соединению, и соединение может запускать только один запрос за раз, поэтому этот конкретный случай отлично "поточно-безопасен".

Однако, это также немного взломать.

См. Http://dev.mysql.com/doc/refman/5.7/en/user-variables.html.

ответил(а) 2021-01-25T17:29:32+03:00 4 месяца, 2 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема