《Mysql實例淺談MySQL存儲過程中declare和set定義變量的區別》要點:
本文介紹了Mysql實例淺談MySQL存儲過程中declare和set定義變量的區別,希望對您有用。如果有疑問,可以聯系我們。
在存儲過程中常看到declare定義的變量和@set定義的變量.簡單的來說,declare定義的類似是局部變量,@set定義的類似全局變量.MYSQL數據庫
1、declare定義的變量類似java類中的局部變量,僅在類中生效.即只在存儲過程中的begin和end之間生效.MYSQL數據庫
2、@set定義的變量,叫做會話變量,也叫用戶定義變量,在整個會話中都起作用(好比某個應用的一個連接過程中),即這個變量可以在被調用的存儲過程或者代碼之間共享數據.如何理解呢?可以看下面這個簡單例子,很好理解.?
MYSQL數據庫
(1)先執行下面腳本,創建一個存儲過程,分別有declare形式的變量和@set形式的變量
MYSQL數據庫
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數據庫
SET @b=1; MYSQL數據庫
(3)然后重復調用這個存儲過程.MYSQL數據庫
CALL temp();MYSQL數據庫
(4)會發現a的值不改變,而b的值會一直增加.MYSQL數據庫
所以,總結起來便是開頭那句話,declare定義的類似是局部變量,@set定義的類似全局變量.MYSQL數據庫
以上這篇淺談MySQL存儲過程中declare和set定義變量的區別便是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持維易PHP.MYSQL數據庫
歡迎參與《Mysql實例淺談MySQL存儲過程中declare和set定義變量的區別》討論,分享您的想法,維易PHP學院為您提供專業教程。