mysql中全局变量、会话变量、用户变量和局部变量的区别
1.查看mysql的所有变量的值
查看全局变量:
SHOW GLOBAL VARIABLES;
查看会话变量:
SHOW SESSION VARIABLES;
SHOW VARIABLES;
2.查看mysql的单个变量的值
查看全局变量:
SHOW GLOBAL VARIABLES LIKE 'wait_timeout';
SHOW GLOBAL VARIABLES LIKE 'wait_time%';
SHOW GLOBAL VARIABLES LIKE '%wait%';
SELECT @@GLOBAL.wait_timeout;
查看会话变量:
SHOW SESSION VARIABLES LIKE 'wait_timeout';
SHOW VARIABLES LIKE 'wait_timeout%';
SHOW VARIABLES LIKE '%wait%';
SELECT @@SESSION.wait_timeout;
select @@local.wait_timeout;
SELECT @@wait_timeout;
查看用户变量:
select @count;
查看局部变量:
declare count int(4);
select count;
3.设置变量的值
全局变量:
SET GLOBAL default_storage_engine = MyISAM;
SET @@GLOBAL.default_storage_engine = MyISAM;
会话变量:
SET SESSION default_storage_engine = MyISAM;
SET LOCAL default_storage_engine = MyISAM;
SET default_storage_engine = MyISAM;
SET @@SESSION.default_storage_engine = MyISAM;
SET @@LOCAL.default_storage_engine = MyISAM;
SET @@default_storage_engine = MyISAM;
用户变量:
set @count=1;
set @count:=11;
select 100 into @count;
select count(price) into @count from items where id= 99;
局部变量:
declare count int(4);
declare sum int(4);
set count=1;
set sum:=0;
刷新即时生效
flush privileges
会话变量:会话变量在每次建立一个新的连接的时候,由MYSQL来初始化。MYSQL会将当前所有全局变量的值复制一份。来做为会话变量。(也就是说,如果在建立会话以后,没有手动更改过会话变量与全局变量的值,那所有这些变量的值都是一样的。)
全局变量:在服务器启动时,会将每个全局变量初始化为其默认值(可以通过命令行或选项文件中指定的选项更改这些默认值)。mysql有很多全局变量,包括系统的一些基本信息,以及mysql的一些基本配置(例如 connect_timeout 默认10s)都可以在全局变量中查到。
用户变量:用户变量就是用户自己定义的变量,也是在连接断开时失效,定义和使用相比会话变量来说简单许多。
局部变量:局部变量通常出现在存储过程中,用于中间计算结果,交换数据等等,当存储过程执行完,变量的生命周期也就结束了。
欢迎来撩 : 汇总all