使用Spring Framework中的相同连接对象在MySQL中访问@variable时。对于所有用户来说,这都是常见的,因此看起来不是在查询中使用的线程安全变量。如何在mysql中使用@Variable替代方案。
在同一连接对象中具有线程保险的一个下方的替代查询。
select
@num := (@num + 1) as row_number
from
user u,
(select @num := 0);
包括(select @num := 0)
在查询开头初始化变量。用户定义的变量范围范围范围范围,并且一次连接只能运行一个查询,因此该特定情况是完美的"线程安全"。
但是,它也有点黑客。
请参阅http://dev.mysql.com/doc/refman/5.7/en/user-variables.html