MySQL 变量详解:系统、用户自定义与局部变量应用
在 MySQL 中,变量体系其实很清晰,主要分三类:系统变量、用户自定义变量和局部变量。理解它们的作用域和使用方式,对编写高效的存储过程至关重要。
1. 系统变量
系统变量由 MySQL 提供,属于服务层面。使用级别分为全局(GLOBAL)和会话(SESSION)。
- 全局变量:对所有会话生效,重启后失效,需修改配置文件永久保存。
- 会话变量:仅对当前连接生效。
若不指定级别,默认为 SESSION。
查看系统变量
SHOW [ SESSION | GLOBAL ] VARIABLES;
SHOW [ SESSION | GLOBAL ] VARIABLES LIKE '变量名';
SELECT @@[SESSION | GLOBAL].变量名;
设置系统变量
SET [ SESSION | GLOBAL ] 变量名 = 值;
SET @@[SESSION | GLOBAL].变量名 = 值;
实战示例: 查看包含 auto 的变量:
SHOW VARIABLES LIKE '%auto%';
修改自动提交:
SET @@session.autocommit = 0;
2. 用户自定义变量
这类变量无需声明,直接赋值即可,但仅限当前会话。未赋值时值为 NULL。
语法格式
定义并赋值:
-- SET 方式
SET @变量名 = 值;
SET @变量名 := 值; -- 推荐用于运算场景,避免符号冲突
@变量名 : 值;

