假設如果我們在 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)
以上是MySQL儲存過程中的變數範圍是什麼意思?的詳細內容。更多資訊請關注PHP中文網其他相關文章!