在存儲(chǔ)過程中??吹絛eclare定義的變量和@set定義的變量。簡單的來說,declare定義的類似是局部變量,@set定義的類似全局變量。
1、declare定義的變量類似java類中的局部變量,僅在類中生效。即只在存儲(chǔ)過程中的begin和end之間生效。
2、@set定義的變量,叫做會(huì)話變量,也叫用戶定義變量,在整個(gè)會(huì)話中都起作用(比如某個(gè)應(yīng)用的一個(gè)連接過程中),即這個(gè)變量可以在被調(diào)用的存儲(chǔ)過程或者代碼之間共享數(shù)據(jù)。如何理解呢?可以看下面這個(gè)簡單例子,很好理解。
(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ū)別就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
您可能感興趣的文章:- win10下mysql 8.0.12 安裝及環(huán)境變量配置教程
- MySQL設(shè)置global變量和session變量的兩種方法詳解
- mysql 5.6.23 安裝配置環(huán)境變量教程
- MySQL8新特性:持久化全局變量的修改方法
- mysql查詢語句中用戶變量的使用代碼解析
- MySQL 聲明變量及存儲(chǔ)過程分析
- 幾個(gè)比較重要的MySQL變量
- MySQL使用變量實(shí)現(xiàn)各種排序
- MySQL變量原理及應(yīng)用實(shí)例