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 –
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!