mysql帶參儲存過程小例子

2021-07-05 11:47:40 字數 1644 閱讀 3731

儲存過程p_get_class_name是根據輸入的班級號判斷班級名稱

儲存過程p_insert_student是接收輸入的學生資訊,最終將資訊插入學生表。

[sql]view plain

copy

print?

drop

procedure

if exists `p_get_class_name`;  

create

procedure

p_get_class_name(

inid 

int,

outname

varchar

(50))  

begin

if(id = 1) then

setname

= '一班'

;  end

if;  

if(id = 2) then

setname

= '二班'

;  end

if;  

end;  

drop

procedure

if exists `p_insert_student`;  

create

procedure

p_insert_student(

inid 

int,

inname

varchar

(10),

inclassno 

int,

inbirth datetime)  

begin

set@id = id;  

set@

name

= name

;  set

@classno = classno;  

set@birth = birth;  

set@classname = 

null

;  call p_get_class_name(@classno,@classname);  

set@insertsql = concat(

'insert into tbl_student values(?,?,?,?)'

);  

prepare

stmtinsert 

from

@insertsql;  

execute

stmtinsert using @id,@

name

,@classname,@birth;  

deallocate

prepare

stmtinsert;  

end;  

call p_insert_student(1,'xy'

,1,'2012-10-01 10:20:01'

);  

在第二個儲存過程中

①利用set宣告了引數,呼叫了第乙個儲存過程

②在第乙個儲存過程中的name引數是輸出引數,所以@classname這個引數在呼叫完第乙個過程後就被附值

③最終利用concat拼接sql語句並傳入引數執行sql語句

call p_insert_student(1,'xy',1,'2012-10-01 10:20:01');呼叫儲存過程

原文:

MySQL帶引數的儲存過程小例子

儲存過程p get class name是根據輸入的班級號判斷班級名稱 儲存過程p insert student是接收輸入的學生資訊,最終將資訊插入學生表。sql view plain copy print?drop procedure if exists p get class name crea...

MySQL帶引數的儲存過程小例子

儲存過程p get class name是根據輸入的班級號判斷班級名稱 儲存過程p insert student是接收輸入的學生資訊,最終將資訊插入學生表。sql view plain copy print drop procedure if exists p get class name crea...

MySQL帶引數的儲存過程小例子

儲存過程p get class name是根據輸入的班級號判斷班級名稱 儲存過程p insert student是接收輸入的學生資訊,最終將資訊插入學生表。drop procedure if exists p get class name create procedure p get class n...