51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

mysql变量

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)都可以在全局变量中查到。

用户变量:用户变量就是用户自己定义的变量,也是在连接断开时失效,定义和使用相比会话变量来说简单许多。

局部变量:局部变量通常出现在存储过程中,用于中间计算结果,交换数据等等,当存储过程执行完,变量的生命周期也就结束了。

赞(7)
未经允许不得转载:工具盒子 » mysql变量