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