翻译:SET子句(已提交到MariaDB官方手册)

时间:2023-05-10 14:42:02

本文为mariadb官方手册:SET的译文。

原文:https://mariadb.com/kb/en/set/
我提交到MariaDB官方手册的译文:https://mariadb.com/kb/zh-cn/set/

语法

SET variable_assignment [, variable_assignment] ...

variable_assignment:
user_var_name = expr
| [GLOBAL | SESSION] system_var_name = expr
| [@@global. | @@session. | @@]system_var_name = expr

可以在任意表达式中使用下面的语法设置用户变量:

user_var_name:= expr

描述

SET语句可以为影响服务端或客户端的不同变量类型进行赋值。老版本的MySQL采用SET OPTION,但是不赞成使用带有OPTIONSET语法,且其在MariaDB 10.0版本中已经移除。

要为基于每查询(per-query)(从MariaDB 10.1.2之后开始的功能)的变量赋值,参见SET STATEMENT

要查看服务端系统变量,可参见SHOW VARIABLES

Server System Variables列出了所有的系统变量。

示例

SHOW VARIABLES WHERE Variable_name LIKE "aria_group_commit%";
+----------------------------+-------+
| Variable_name | Value |
+----------------------------+-------+
| aria_group_commit | none |
| aria_group_commit_interval | 0 |
+----------------------------+-------+ SET GLOBAL aria_group_commit="HARD"; SET GLOBAL aria_group_commit_interval=100; SHOW VARIABLES WHERE Variable_name LIKE "aria_group_commit%";
+----------------------------+-------+
| Variable_name | Value |
+----------------------------+-------+
| aria_group_commit | hard |
| aria_group_commit_interval | 100 |
+----------------------------+-------+

直接赋值:

SELECT (@a:=1);
+---------+
| (@a:=1) |
+---------+
| 1 |
+---------+ SELECT @a;
+------+
| @a |
+------+
| 1 |
+------+