1、in引數的理解
delimiter cre
atep
roce
dure
sele
ctus
er1(
inus
erid
int)
begi
nsel
ect∗
from
tuse
rwhe
reid
>us
erid
;end
create procedure selectuser1(in userid int) begin select * from t_user where id > userid; end
create
proc
edur
esel
ectu
ser1
(inu
seri
dint
)beg
inse
lect
∗fro
mtu
serw
here
id>us
erid
;end
delimiter ;
set @userid = 3;
call atcrowdfunding.adduser(@userid); --內部不能改變userid的值,只是可以傳入作為引數使用
select @userid; --所以此處輸出還是3
2、out引數的理解
delimiter cre
atep
roce
dure
sele
ctus
er(o
utus
ersi
nt)b
egin
−−se
tuse
rs=1
;sel
ectu
sers
;sel
ectc
ount
(∗)i
ntou
sers
from
tuse
r;se
lect
user
s;en
dcreate procedure select_user(out users int) begin -- set users = 1; select users; select count(*) into users from t_user; select users; end
create
proc
edur
esel
ectu
ser
(out
user
sint
)beg
in−−
setu
sers
=1;s
elec
tuse
rs;s
elec
tcou
nt(∗
)int
ouse
rsfr
omtu
ser
;sel
ectu
sers
;end
delimiter ;
set @users = 3;
call atcrowdfunding.select_user(@users);–此處第乙個結果將輸出null,user是作為輸出引數,執行了select count(*) into users from t_user;才會有值
select @users; --users將會被改變
ps:set @users = 3 為使用者變數的定義,注意不要定義過多的使用者變數!
Mysql 儲存過程1
儲存過程的優勢 1,一般的sql命令在執行前需要解析 編譯前提準備過程,但是儲存 過程是事先完成了解析,編譯處理後儲存在資料庫的,執行時能減輕 資料庫負擔,提高執行效能。2,減輕網路負擔,之前的傳遞sql語句,變成現在的傳遞引數。3,防止對錶的直接訪問。4,可以減少大部分的程式 5,msyql5.0...
MySQL儲存過程 (1)
引數模式 in 該引數作為輸入,該引數呼叫傳入值 out 該引數作為輸出,該引數作為返回值 inout 該引數即可作為輸入,也可作為輸出,該引數即可呼叫傳入值,也可作為返回值 delimiter 設定結束標記,比如 delimiter 1 不帶引數儲存過程 delimiter create proc...
mysql高階 儲存過程 1
在一起的語言,叫做 過程 php中沒有過程,只有函式,準確的說.函式能起到過程的作用 過程 就是封裝語句,呼叫的時候,這些封裝體執行 函式是有返回值的過程,而過程沒有返回值的函式 過程 把若干條sql封裝起來,起個名字就是過程 儲存過程 把此過程存在資料庫中,叫做儲存過程 匿名過程 mysql 不支...