淺談MySQL存儲(chǔ)過程中declare和set定義變量的區(qū)別
在存儲(chǔ)過程中??吹絛eclare定義的變量和@set定義的變量。簡(jiǎn)單的來說,declare定義的類似是局部變量,@set定義的類似全局變量。
1、declare定義的變量類似java類中的局部變量,僅在類中生效。即只在存儲(chǔ)過程中的begin和end之間生效。
2、@set定義的變量,叫做會(huì)話變量,也叫用戶定義變量,在整個(gè)會(huì)話中都起作用(比如某個(gè)應(yīng)用的一個(gè)連接過程中),即這個(gè)變量可以在被調(diào)用的存儲(chǔ)過程或者代碼之間共享數(shù)據(jù)。如何理解呢?可以看下面這個(gè)簡(jiǎn)單例子,很好理解。
(1)先執(zhí)行下面腳本,創(chuàng)建一個(gè)存儲(chǔ)過程,分別有declare形式的變量和@set形式的變量
DROP PROCEDURE IF EXISTS temp; DELIMITER // CREATE PROCEDURE temp() BEGIN DECLARE a INT DEFAULT 1; SET a=a+1; SET @b=@b+1; SELECT a,@b; END // DELIMITER ;
(2)接著為b變量初始化。
SET @b=1;
(3)然后重復(fù)調(diào)用這個(gè)存儲(chǔ)過程。
CALL temp();
(4)會(huì)發(fā)現(xiàn)a的值不改變,而b的值會(huì)一直增加。
所以,總結(jié)起來就是開頭那句話,declare定義的類似是局部變量,@set定義的類似全局變量。
以上這篇淺談MySQL存儲(chǔ)過程中declare和set定義變量的區(qū)別就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
win10下mysql 8.0.18 安裝配置方法圖文教程(windows版)
這篇文章主要介紹了windows版的mysql 8.0.18 安裝配置方法圖文教程,文中安裝步驟介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-11-11MySQL 5.5 range分區(qū)增加刪除處理的方法示例
這篇文章主要給大家介紹了關(guān)于MySQL 5.5 range分區(qū)增加刪除處理的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧。2017-06-06Linux 安裝JDK Tomcat MySQL的教程(使用Mac遠(yuǎn)程訪問)
這篇文章主要介紹了Linux 安裝JDK Tomcat MySQL(使用Mac遠(yuǎn)程訪問),本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-06-06mysql中insert與select的嵌套使用解決組合字段插入問題
本節(jié)主要介紹了mysql中insert與select的嵌套使用解決組合字段插入問題,需要的朋友可以參考下2014-07-07MySQL筆記之?dāng)?shù)學(xué)函數(shù)詳解
本篇文章對(duì)MySQL的數(shù)學(xué)函數(shù)進(jìn)行了詳細(xì)的介紹。需要的朋友參考下2013-05-05Linux(Ubuntu)下Mysql5.6.28安裝配置方法圖文教程
這篇文章主要為大家詳細(xì)介紹了Linux(Ubuntu)下Mysql5.6.28安裝配置方法圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-01-01