首页 > 解决方案 > mysql 8.0.16 中用户定义的变量会存储在哪里?

问题描述

假设我在mysql中定义了两个变量如下:

SET @STUDENT_NAME = 'ABCD';
SET @STUDENT_AGE = 25;

现在,当我使用以下方法选择这两个变量值时:

SELECT @STUDENT_NAME, @STUDENT_AGE;

即使我切换了数据库,它也完美地显示了相应的值。

但是当我重新启动mysql并尝试选择这些值时,它显示了这些变量的空值,那么当我设置值时它实际上会存储在哪里?

标签: mysqldatabase

解决方案


根据手册(强调我的):

https://dev.mysql.com/doc/refman/8.0/en/user-variables.html

用户定义的变量是特定于会话的。一个客户端定义的用户变量不能被其他客户端看到或使用。(例外:有权访问性能模式 user_variables_by_thread 表的用户可以查看所有会话的所有用户变量。)给定客户端会话的所有变量都会在该客户端退出时自动释放。


推荐阅读