Heim >Datenbank >MySQL-Tutorial >Was bedeutet der Variablenbereich in gespeicherten MySQL-Prozeduren?

Was bedeutet der Variablenbereich in gespeicherten MySQL-Prozeduren?

王林
王林nach vorne
2023-08-26 16:49:11631Durchsuche

Was bedeutet der Variablenbereich in gespeicherten MySQL-Prozeduren?

Angenommen, wir deklarieren eine Variable im BEGIN/END-Block, dann liegt der Gültigkeitsbereich dieser Variablen in diesem bestimmten Block. Wir könnten auch eine Variable mit demselben Namen innerhalb eines anderen BEGIN/END-Blocks deklarieren, was vollkommen zulässig wäre, aber ihr Gültigkeitsbereich würde innerhalb seines BEGIN/END-Blocks liegen. Dies kann anhand des folgenden Beispiels verstanden werden, in dem wir eine Prozedur erstellen, um den Gültigkeitsbereich einer Variablen anzuzeigen –

Beispiel

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)

In der obigen Prozedur haben wir zwei Variablen mit demselben Namen, nämlich A. Solange die interne Variable innerhalb des Gültigkeitsbereichs deklariert ist, hat sie hier Vorrang. Der Hauptpunkt besteht darin, dass die interne Variable verschwindet, wenn das erste END erreicht wird, und dass sie „außerhalb des Gültigkeitsbereichs“ liegt. Um dieses Konzept zu verstehen, nennen Sie diesen Prozess wie folgt:

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)

Das obige ist der detaillierte Inhalt vonWas bedeutet der Variablenbereich in gespeicherten MySQL-Prozeduren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen