登录
首页 >  数据库 >  MySQL

MySQL存储过程中的变量范围是什么意思?

来源:tutorialspoint

时间:2023-08-28 14:46:25 492浏览 收藏

本篇文章给大家分享《MySQL存储过程中的变量范围是什么意思?》,覆盖了数据库的常见基础知识,其实一个语言的全部知识点一篇文章是不可能说完的,但希望通过这些问题,让读者对自己的掌握程度有一定的认识(B 数),从而弥补自己的不足,更好的掌握它。

假设如果我们在 BEGIN/END 块内声明一个变量,那么该变量的范围将在这个特定的块中。我们还可以在另一个 BEGIN/END 块内声明一个同名的变量,这将是完全合法的,但其范围将在其 BEGIN/END 块内。可以借助以下示例来理解这一点,在该示例中我们创建一个过程来显示变量的范围 -

示例

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存储过程中的变量范围是什么意思?》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

声明:本文转载于:tutorialspoint 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>