Maison  >  Article  >  base de données  >  Que signifie la portée variable dans les procédures stockées MySQL ?

Que signifie la portée variable dans les procédures stockées MySQL ?

王林
王林avant
2023-08-26 16:49:11539parcourir

Que signifie la portée variable dans les procédures stockées MySQL ?

Supposons que si nous déclarons une variable dans le bloc BEGIN/END, la portée de cette variable sera dans ce bloc particulier. Nous pourrions également déclarer une variable du même nom dans un autre bloc BEGIN/END, ce qui serait tout à fait légal, mais sa portée serait dans son bloc BEGIN/END. Cela peut être compris à l'aide de l'exemple suivant, dans lequel nous créons une procédure pour afficher la portée d'une variable -

Exemple

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)

Dans la procédure ci-dessus, nous avons deux variables portant le même nom, à savoir A. Ici, tant que la variable interne est déclarée dans la portée, elle est prioritaire. Le point principal est que lorsque la première FIN est atteinte, la variable interne disparaît et est dite "hors de portée". Pour comprendre ce concept, appelez ce processus comme suit -

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)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer