假设我在mysql中定义了两个变量,如下所示:
SET @STUDENT_NAME = 'ABCD';
SET @STUDENT_AGE = 25;
现在,当我使用以下命令选择这两个变量值时:
SELECT @STUDENT_NAME, @STUDENT_AGE;
即使我切换数据库,它也能完美显示相应的值。
但是当我重新启动mysql并尝试选择这些值时,它显示的是这些变量的空值,那么当我设置了值时,它将实际存储在哪里?
答案 0 :(得分:1)
根据手册(重点为我):
https://dev.mysql.com/doc/refman/8.0/en/user-variables.html
用户定义的变量特定于会话。一个客户端定义的用户变量无法被其他客户端看到或使用。 (例外:有权访问性能模式user_variables_by_thread表的用户可以查看所有会话的所有用户变量。)当给定的客户端会话退出时,该客户端会话的所有变量将自动释放。