《Mysql實(shí)例淺談MySQL存儲(chǔ)過程中declare和set定義變量的區(qū)別》要點(diǎn):
本文介紹了Mysql實(shí)例淺談MySQL存儲(chǔ)過程中declare和set定義變量的區(qū)別,希望對(duì)您有用。如果有疑問,可以聯(lián)系我們。
在存儲(chǔ)過程中常看到declare定義的變量和@set定義的變量.簡單的來說,declare定義的類似是局部變量,@set定義的類似全局變量.MYSQL數(shù)據(jù)庫
1、declare定義的變量類似java類中的局部變量,僅在類中生效.即只在存儲(chǔ)過程中的begin和end之間生效.MYSQL數(shù)據(jù)庫
2、@set定義的變量,叫做會(huì)話變量,也叫用戶定義變量,在整個(gè)會(huì)話中都起作用(好比某個(gè)應(yīng)用的一個(gè)連接過程中),即這個(gè)變量可以在被調(diào)用的存儲(chǔ)過程或者代碼之間共享數(shù)據(jù).如何理解呢?可以看下面這個(gè)簡單例子,很好理解.?
MYSQL數(shù)據(jù)庫
(1)先執(zhí)行下面腳本,創(chuàng)建一個(gè)存儲(chǔ)過程,分別有declare形式的變量和@set形式的變量
MYSQL數(shù)據(jù)庫
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變量初始化.MYSQL數(shù)據(jù)庫
SET @b=1; MYSQL數(shù)據(jù)庫
(3)然后重復(fù)調(diào)用這個(gè)存儲(chǔ)過程.MYSQL數(shù)據(jù)庫
CALL temp();MYSQL數(shù)據(jù)庫
(4)會(huì)發(fā)現(xiàn)a的值不改變,而b的值會(huì)一直增加.MYSQL數(shù)據(jù)庫
所以,總結(jié)起來便是開頭那句話,declare定義的類似是局部變量,@set定義的類似全局變量.MYSQL數(shù)據(jù)庫
以上這篇淺談MySQL存儲(chǔ)過程中declare和set定義變量的區(qū)別便是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持維易PHP.MYSQL數(shù)據(jù)庫
歡迎參與《Mysql實(shí)例淺談MySQL存儲(chǔ)過程中declare和set定義變量的區(qū)別》討論,分享您的想法,維易PHP學(xué)院為您提供專業(yè)教程。
轉(zhuǎn)載請(qǐng)注明本頁網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/11517.html