MYSQL里的存储主要有三大变量:系统变量,用户自定义变量,局部变量。以下分别是三大变量的语法和用法。
系统变量
系统变量基于服务器层面,不是用户自定义的,系统变量分为会话变量(SESSION)和全局变量(GLOBAL)。
查看系统变量
SHOW [session|global] VARIABLES; 查看所有的系统变量名
SHOW VARIABLES LIKE 系统变量名; 查看指定的系统变量名
设置系统变量
设置全局变量:
SET GLOBAL variable_name = value;
例如,要设置全局的max_connections变量为1000,你可以执行以下命令:
SET GLOBAL max_connections = 1000;
设置会话变量:
SET SESSION variable_name = value;
设置变量关闭或启动
关闭命令:
将会话变量或者全局变量的autocommit变量设置为0
SET [SESSION |GLOBAL]autocommit = 0;
启用命令:
SET SESSION autocommit = 1;
如果系统的全局变量被关闭,需要重启。不能使用SET GLOBAL autocommit = 1;可在/etc/my.cnf中配置。
用户自定义变量
用户自己定义的变量,用户自定义变量无需声明,使用的时候直接在变量名前面加@字符。
变量赋值
单个字段赋值:
SET @var_name=value; 使用:=赋值也可以
select结果集赋值
select 字段名 INTO var_name FROM 表名
变量的使用
SELECT var_name= value;
局部变量
局部变量是定义在局部生效的变量(beagin…end模块内),访问变量之前,需要用关键词DECLARE声明。
变量声明
DECLARE 变量名 变量类型
变量赋值
单个字段赋值:
SET @var_name=value; 使用:=赋值也可以
select结果集赋值
select 字段名 INTO var_name FROM 表名;