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

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

熱門標(biāo)簽:地圖標(biāo)注什么軟件好用 如何辦理400客服電話 地圖標(biāo)注專員入駐 外呼系統(tǒng)線路經(jīng)常出問題嗎 地圖標(biāo)注百度競價(jià) 神行者百貨商場地圖標(biāo)注 安陽手機(jī)自動(dòng)外呼系統(tǒng)原理是什么 西藏地圖標(biāo)注改進(jìn)點(diǎn) 外呼系統(tǒng)怎樣才能不封號

在存儲(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í)例

標(biāo)簽:阜陽 萍鄉(xiāng) 酒泉 衡水 張掖 雞西 貴港 AXB

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《淺談MySQL存儲(chǔ)過程中declare和set定義變量的區(qū)別》,本文關(guān)鍵詞  淺談,MySQL,存儲(chǔ),過程中,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《淺談MySQL存儲(chǔ)過程中declare和set定義變量的區(qū)別》相關(guān)的同類信息!
  • 本頁收集關(guān)于淺談MySQL存儲(chǔ)過程中declare和set定義變量的區(qū)別的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章