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

时间:2021-08-20 05:09:00

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

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

语法

SET var_name = expr [, var_name = expr] ...

存储程序stored programs中的SET语句是普通SET语句的一个扩展功能。 变量引用的时候,可以引用存储程序内部、全局系统变量或用户自定义变量。

存储程序中的SET语句是作为已有的SET语法的一部分实现的。 这允许扩展SET a = x,b = y,...的语法,其中可以混合不同的变量类型(本地声明的变量,全局系统变量和会话系统变量,用户定义的变量)。也允许组合局部变量和仅对系统变量有意义的一些选项; 在这种情况下,虽然会识别选项,但却会忽略它。

SET可为本地变量local variables和用户自定义变量user-defined variables赋值。

当通过查询返回的列值来为多个变量赋值时,应优先考虑使用SELECT INTO

当为多个变量赋相同值时,可以使用函数LAST_VALUE( )

以下是一个用户自定义变量的赋值示例:

SET @x = 1;

//译者补充示例:SET为多种类型的变量赋值,注意当其中一个变量赋值失败时整个语句将全部失败
SET @x = 1, SESSION sql_mode = '';
SET GLOBAL sort_buffer_size = 1000000, SESSION sort_buffer_size = 1000000;
SET @@global.sort_buffer_size = 1000000, @@local.sort_buffer_size = 1000000;
SET GLOBAL max_connections = 1000, sort_buffer_size = 1000000;