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; -> // 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)
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP