Mysql儲存過程使用

2021-09-27 00:22:30 字數 1279 閱讀 9740

案例:

create procedure sp_insert_graduate_certificate ( in psid varchar(200),

in certificateid int(32),

in number varchar(50),

in userid int(32),

in starttime datetime,

in graduatetime datetime,

in certificatename varchar(50),

in endtime datetime,

in goodsid int(32) ,

out result_cid int(32))

begin

start transaction;

set @scount=(select count(1) from study_manage_graduate_certificate where p_sid=psid);

if @scount<=0 then

insert into study_manage_graduate_certificate(p_sid,certificateid,number,userid,starttime,graduatetime,certificatename,endtime,goodsid)

values(psid,certificateid,number,userid,starttime,graduatetime,certificatename,endtime,goodsid);

end if;

select cid as result_cid from study_manage_graduate_certificate where p_sid=psid;

commit;

end;

注意事項:

1、引數的三種型別

in 只輸入,不輸出

out 只輸出,不輸入

inout  輸出並且輸入

2、mysql的儲存過程不是原子性的(orcale的是)

保證mysql儲存過程的原子性,需要開啟事務,利用事務的原子性,變相的是儲存過程中的事務(start transaction;                     commit;)所包含的所有命令具有原子性

3、通過call獲取返回值

call sp_insert_graduate_certificate('9940',1,'2',3,now(),now(),'4',now(),10483,@result_cid);

儲存過程 MySQL儲存過程的使用總結

案例所涉及到的表如下 create table t goods g id varchar 20 not null comment 商品編號 g name varchar 30 default null comment 商品名稱 g price float default null comment 商...

mysql儲存過程 MySQL儲存過程

在本節中,您將逐步學習如何在mysql中編寫和開發儲存過程。首先,我們向您介紹儲存過程的概念,並討論何時使用它。然後,展示如何使用過程 的基本元素,如建立儲存過程的語句,if else,case,loop,儲存過程的引數。下面每個教程都包含了易於理解的示例和詳細的說明。如果您瀏覽並學習所有教程,您可...

mysql 儲存過程 mysql 儲存過程

建立 為建立儲存過程的結束標誌,使用delimiter 可更改標誌 格式create procedure begin sqlend create procedure myprocedure in param integer begin select from tb role where tb rol...