Skip to content

MySQL 变量

系统变量

系统变量由 MySQL 定义,分为全局变量和会话变量。

sql
SHOW GLOBAL VARIABLES;
SHOW SESSION VARIABLES;
SHOW VARIABLES LIKE '%char%';

查看指定变量:

sql
SELECT @@global.autocommit;
SELECT @@session.autocommit;
SELECT @@autocommit;

修改变量:

sql
SET GLOBAL max_connections = 300;
SET SESSION autocommit = 0;

全局变量影响新连接,通常不能跨重启。会话变量只影响当前连接。

用户变量

用户变量以 @ 开头,作用域是当前连接。

sql
SET @page = 1;
SET @page_size = 20;
SELECT @offset := (@page - 1) * @page_size;

从查询结果赋值:

sql
SELECT COUNT(*) INTO @total FROM users;
SELECT @total;

局部变量

局部变量只能在存储过程、函数或 BEGIN ... END 块中使用。

sql
DECLARE total INT DEFAULT 0;

SELECT COUNT(*) INTO total
FROM users;

DECLARE 通常放在 BEGIN 后的开头位置。

基于 MIT 许可发布