淺談MySQL存儲過程中declare和set定義變量的區(qū)別
在存儲過程中??吹絛eclare定義的變量和@set定義的變量。簡單的來說,declare定義的類似是局部變量,@set定義的類似全局變量。
1、declare定義的變量類似java類中的局部變量,僅在類中生效。即只在存儲過程中的begin和end之間生效。
2、@set定義的變量,叫做會話變量,也叫用戶定義變量,在整個會話中都起作用(比如某個應(yīng)用的一個連接過程中),即這個變量可以在被調(diào)用的存儲過程或者代碼之間共享數(shù)據(jù)。如何理解呢?可以看下面這個簡單例子,很好理解。
(1)先執(zhí)行下面腳本,創(chuàng)建一個存儲過程,分別有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)用這個存儲過程。
CALL temp();
(4)會發(fā)現(xiàn)a的值不改變,而b的值會一直增加。
所以,總結(jié)起來就是開頭那句話,declare定義的類似是局部變量,@set定義的類似全局變量。
以上這篇淺談MySQL存儲過程中declare和set定義變量的區(qū)別就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
MySQL 5.6.36 Windows x64位版本的安裝教程詳解
這篇文章主要介紹了MySQL 5.6.36 Windows x64位版本的安裝教程詳解,非常不錯,具有參考借鑒價值,需要的的朋友參考下吧2017-05-05
MySQL之七種SQL JOINS實現(xiàn)的圖文詳解
這篇文章主要介紹了MySQL中七種SQL JOINS的實現(xiàn)方法及圖文詳解,文中也有相關(guān)的代碼示例供大家參考,感興趣的同學(xué)可以參考閱讀下2023-06-06
將MySQL從MyISAM轉(zhuǎn)換成InnoDB錯誤和解決辦法
原來自己用的是為了裝的, 所以在設(shè)置database usage(如下圖1)的時候按照discuz官方的建議,選的都是Non-Transactional Database Only(只支持MyISAM數(shù)據(jù)引擎的非事務(wù)數(shù)據(jù)庫),用MyISAM數(shù)據(jù)庫,還沒涉及到需要InnoDB,因此打算直接不加載INNODB引擎。2011-09-09
Mysql恢復(fù)誤刪庫表數(shù)據(jù)完整場景演示
在開發(fā)和在生產(chǎn)中總會出現(xiàn)各種各樣的失誤和意味,當(dāng)MySQL的數(shù)據(jù)或表被刪除后不要慌,下面這篇文章主要給大家介紹了關(guān)于Mysql恢復(fù)誤刪庫表數(shù)據(jù)的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-07-07
Navicat 連接MySQL8.0.11出現(xiàn)2059錯誤
這篇文章主要介紹了Navicat 連接MySQL8.0.11出現(xiàn)2059錯誤,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11

