一、變量的定義
mysql中變量定義用declare來(lái)定義一局部變量,該變量的使用范圍只能在begin...end 塊中使用,變量必須定義在復(fù)合語(yǔ)句的開頭,并且是在其它語(yǔ)句之前,也可以同時(shí)申明多個(gè)變量,如果需要,可以使用default賦默認(rèn)值。
定義一個(gè)變量語(yǔ)法如下:
declare var_name[,...] type[default value]看一個(gè)變量定義實(shí)例
declare last date;二、mysql存儲(chǔ)過(guò)程變量賦值
變量的賦值可直接賦值與查詢賦值來(lái)操作,直接賦值可以用set來(lái)操作,可以是常量或表達(dá)式如果下
復(fù)制代碼代碼如下:
set var_name= [,var_name expr]...給上面的last變量賦值方法如下
set last = date_sub( current_date(),interval 1 month);下面看通過(guò)查詢給變量賦值,要求查詢返回的結(jié)果必須為一行,具體操作如下
select col into var_name[,...] table_expr我們來(lái)通過(guò)查詢給v_pay賦值。
create function get _cost(p_custid int,p_eff datetime)
return decimal(5,2)
deterministic
reads sql data
begin
declare v_pay decimail(5,2);
select ifnull( sum(pay.amount),0) into vpay from payment where pay.payd<=p_eff and pay.custid=pid
reutrn v_rent + v_over - v_pay;
end $$
好了,這篇簡(jiǎn)單的存儲(chǔ)過(guò)程中變量的定義賦值教程就到這里了,下面我們會(huì)接著講關(guān)于myql存儲(chǔ)過(guò)程的條件的定義與處理。
以下是其它網(wǎng)友的補(bǔ)充
在MySQL的存儲(chǔ)過(guò)程中,可以使用變量,它用于保存處理過(guò)程中的值。
定義變量使用DECLARE語(yǔ)句,語(yǔ)法格式如下:
DECLARE var_name[,...] type [DEFAULT value]
其中,var_name為變量名稱,type為MySQL支持的任何數(shù)據(jù)類型,可選項(xiàng)[DEFAULT value]為變量指定默認(rèn)值。一次可以定義多個(gè)同類型的變量,各變量名稱之間以逗號(hào)“,”隔開。
定義與使用變量時(shí)需要注意以下幾點(diǎn):
◆ DECLARE語(yǔ)句必須用在DEGIN…END語(yǔ)句塊中,并且必須出現(xiàn)在DEGIN…END語(yǔ)句塊的最前面,即出現(xiàn)在其他語(yǔ)句之前。
◆ DECLARE定義的變量的作用范圍僅限于DECLARE語(yǔ)句所在的DEGIN…END塊內(nèi)及嵌套在該塊內(nèi)的其他DEGIN…END塊。
◆ 存儲(chǔ)過(guò)程中的變量名不區(qū)分大小寫。
定義后的變量采用SET語(yǔ)句進(jìn)行賦值,語(yǔ)法格式如下:
SET var_name = expr [,var_name = expr] ...
其中,var_name為變量名,expr為值或者返回值的表達(dá)式,可以使任何MySQL支持的返回值的表達(dá)式。一次可以為多個(gè)變量賦值,多個(gè)“變量名=值”對(duì)之間以逗號(hào)“,”隔開。
例如:
復(fù)制代碼代碼如下:
begin
declare no varchar(20);
declare title varchar(30);
set no='101010',title='存儲(chǔ)過(guò)程中定義變量與賦值';
end
提示:存儲(chǔ)過(guò)程中所有的關(guān)鍵字也是不區(qū)分大小寫的,如BEGIN可以寫出begin。