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

假设如果在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;

    -> //

在上面的过程中,我们有两个具有相同名称的变量,即A。这里,内部变量声明只要在范围内就优先。关键是当到达第一个END时,内部变量消失,它被称为“ OUT OF SCOPE”。要了解概念,请按以下方式调用此过程-

mysql> CALL Scope_variables();

+-------+

| A     |

+-------+

| inner |

+-------+

1 row in set (0.00 sec)

+-------+

| A     |

+-------+

| outer |

+-------+

1 row in set (0.00 sec)

以上是 MySQL存储过程中的变量范围是什么意思? 的全部内容, 来源链接: utcz.com/z/322154.html

回到顶部