示例mysql> create procedure scope_variables() -> begin -> declare a varchar(5) default 'outer'; -> begin -> declare a varchar(5) default 'inner'; -> select a; -> end; -> select a; -> end; -> //query ok, 0 rows affected (0.08 sec)
在上面的过程中,我们有两个同名的变量,即 a。这里,只要内部变量声明在作用域内,它就优先。要点是,当到达第一个 end 时,内部变量消失,称为“超出范围”。要理解这个概念,请按如下方式调用此过程 -
mysql> call scope_variables();+-------+| a |+-------+| inner |+-------+1 row in set (0.00 sec)+-------+| a |+-------+| outer |+-------+1 row in set (0.00 sec)query ok, 0 rows affected (0.01 sec)
以上就是mysql存储过程中的变量范围是什么意思?的详细内容。
