首頁 > 資料庫 > mysql教程 > MySQL 中的 @variable 與變數:有什麼不同?

MySQL 中的 @variable 與變數:有什麼不同?

Barbara Streisand
發布: 2025-01-21 13:52:11
原創
215 人瀏覽過

@variable vs. variable in MySQL: What's the Difference?

MySQL變數型別比較:@variablevariable

MySQL 提供兩種類型的變數:使用者自訂變數和會話層級使用者自訂變數。後者以@符號開頭(@variable),而前者沒有(variable)。

使用者自訂變數

這類變數類型寬鬆,並在整個會話期間保持其值。它們在任何預存程序之外使用SET語句建立。例如:

<code class="language-sql">SET @var = 1;</code>
登入後複製

會話層級使用者自訂變數

與使用者自訂變數不同,這些變數僅在目前會話中可見。它們在存儲過程中聲明並作為參數傳遞。例如:

<code class="language-sql">CREATE PROCEDURE prc_test(var INT)
BEGIN
    DECLARE var2 INT;
    SET var2 = 1;
END;</code>
登入後複製

主要區別

這兩種變數類型的主要差異在於它們的範圍和初始化方式。過程變數每次呼叫過程時都會重新初始化為NULL,而會話層級變數在跨過程呼叫時會保留其值。以下程式碼片段示範了這一點:

<code class="language-sql">CREATE PROCEDURE prc_test()
BEGIN
    DECLARE var2 INT DEFAULT 1;
    SET var2 = var2 + 1;
    SET @var2 = @var2 + 1;
END;

SET @var2 = 1;</code>
登入後複製

範例輸出:

var2 @var2
2 2
2 3
2 4

如您所看到的,var2每次都會重新初始化,而@var2在跨呼叫時累積值的變化。

結論

理解@variablevariable之間的區別對於有效的MySQL開發至關重要。它允許您根據變數的範圍和初始化行為適當地管理變量,從而確保程式碼效率和準確性。

以上是MySQL 中的 @variable 與變數:有什麼不同?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板