mysql会话变量和用户变量的区别

如题所述

    用户变量的作用域要比局部变量要广。用户变量可以作用于当前整个连接,但是当当前连接断开后,其所定义的用户变量都会消失。

    服务器为每个连接的客户端维护一系列会话变量。在客户端连接时,使用相应全局变量的当前值对客户端的会话变量进行初始化。设置会话变量不需要特殊权限,但客户端只能更改自己的会话变量,而不能更改其它客户端的会话变量。会话变量的作用域与用户变量一样,仅限于当前连接。当当前连接断开后,其设置的所有会话变量均失效。


    白话一点就是,用户变量是用户在当前连接下自己设置的一个变量值(如set @name='小明';),一般用与存储过程等;会话变量是在客户连接数据库时自己所处的一个登录使用环境。

    以上是自己的一点理解,可以用这个简单了解一下,有点抽象理解后再去查更具体的资料吧。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-12-27
mysql变量的术语分类:1.用户变量:以"@"开始,形式为"@变量名"用户变量跟mysql客户端是绑定的,设置的变量,只对当前用户使用的客户端生效 2.全局变量:定义时,以如下两种形式出现,set GLOBAL 变量名 或者 set @@global.变量名
第2个回答  2020-04-11
1.
用户变量的作用域要比局部变量要广。用户变量可以作用于当前整个连接,但是当当前连接断开后,其所定义的用户变量都会消失。
2.
服务器为每个连接的客户端维护一系列会话变量。在客户端连接时,使用相应全局变量的当前值对客户端的会话变量进行初始化。设置会话变量不需要特殊权限,但客户端只能更改自己的会话变量,而不能更改其它客户端的会话变量。会话变量的作用域与用户变量一样,仅限于当前连接。当当前连接断开后,其设置的所有会话变量均失效。

白话一点就是,用户变量是用户在当前连接下自己设置的一个变量值(如set
@name='小明';),一般用与存储过程等;会话变量是在客户连接数据库时自己所处的一个登录使用环境。
以上是自己的一点理解,可以用这个简单了解一下,有点抽象理解后再去查更具体的资料吧。
第3个回答  2016-12-27
您好,请问您是想知道mysql会话变量和用户变量的区别吗?
相似回答