欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

淺談MySQL存儲(chǔ)過程中declare和set定義變量的區(qū)別

 更新時(shí)間:2016年12月13日 10:19:33   投稿:jingxian  
下面小編就為大家?guī)硪黄獪\談MySQL存儲(chǔ)過程中declare和set定義變量的區(qū)別。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

在存儲(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)文章

最新評(píng)論