系统变量和用户定义变量可以在存储程序中使用,就像它们可以在存储程序上下文之外使用一样。此外,存储程序可用于DECLARE
定义局部变量,存储例程(过程和函数)可声明为采用在例程与其调用者之间传递值的参数。
要声明局部变量,请使用 第 13.6.4.1 节“局部变量 DECLARE 语句”
DECLARE
中所述的 语句。变量可以直接用
SET
语句设置。请参阅第 13.7.4.1 节,“变量赋值的 SET 语法”。可以使用或通过打开游标并使用 将查询的结果检索到局部变量中。请参阅 第 13.2.9.1 节,“SELECT ... INTO 语句”和第 13.6.6 节,“游标”。
SELECT ... INTO
var_list
FETCH ... INTO
var_list
有关局部变量范围以及 MySQL 如何解析不明确名称的信息,请参阅 第 13.6.4.2 节,“局部变量范围和解析”。
不允许将值分配DEFAULT
给存储过程或函数参数或存储程序局部变量(例如使用
语句)。在 MySQL 5.7 中,这会导致语法错误。
SET
var_name
= DEFAULT