mysql mysql中儲存過程的使用

2021-09-19 15:43:53 字數 2126 閱讀 3008

需求: 使用者根據自己的積分兌換商品;

分析: 整個過程設計2個步驟,1.插入使用者-商品兌換關係表中。2.扣除使用者積分。3.商品的數量要相應減少。涉及到多張表操作,肯定用儲存過程要好一些。

#########################

#使用者-商品 兌換關係

#1. 插入記錄

#2. 更改使用者積分

#3. 更改商品數量

#問題是: 當我使用者兌換多個商品時候,我的商品id是乙個list這樣呼叫儲存過程,難道呼叫n次?

##########################

drop

procedure

ifexists ttt;

delimiter $$

create

procedure ttt(cuid char(9

), ggid varchar(15

), num int

)begin

declare

exit

handler

for sqlexception

begin

rollback

;select

'發生錯誤,執行回滾,程式終止'

;end

;##執行dml操作##

insert

into tb_cgconver(cid, gid, cgtime)

values

(cuid, ggid,

now())

;update tb_customer set cintegrals = cintegrals +

1where cid like cuid;

update tb_goods set gstock = gstock - num where gid like ggid;

end$$

delimiter

;call ttt(

'201500762'

,'123131333',5

);

##沒有異常回滾的

drop

procedure tt

delimiter $$

create

procedure tt(customerid char(9

), goodsgid varchar(15

))begin

insert

into tb_cgconver(cid, gid, cgtime)

values

(customerid, goodsgid,

now())

;update tb_customer set cintegrals = cintegrals +

1where cid like customerid;

end$$

delimiter

;###插入使用者-商品兌換表 修改使用者積分

call tt(

'201500762'

,'123456782');

create

procedure pr_add(a int

, b int

)begin

declare c int

;if a is

null

then

set a =0;

endif

;if b is

null

then

set b =0;

endif

;set c = a + b;

select c as sum;

end;

call pr_add(10,

20);###################################

drop

procedure ff;

create

procedure ff(

)begin

select

*from tb_auto;

select

*from tb_customer;

endcall ff(

);

參考文獻

mysql記錄儲存過程異常情況

mysql的規範官方

Oracle中儲存過程

1 建立乙個儲存過程 create or replace procedure pro name parameter1 parameter2 is as begin plsql sentences pl sql語句,儲存過程功能實現的主體 exception dowith sentences 異常處理...

mysql中儲存過程

delimiter,簡單解釋下這個命令的用途,在mysql中每行命令都是用 結尾,回車後自動執行,在儲存過程中 往往不代表指令結束,馬上執行,而delimiter原本就是 的意思,因此用這個命令轉換一下 為 這樣只有收到 才認為指令結束可以執行 檢視myql中已經存在的儲存過程 show proce...

mysql中儲存過程

儲存過程,其本質還是函式 但其規定 不能有返回值 說明 1,in 用於設定該變數是用來 接收實參資料 的,即 傳入 預設不寫,就是in 2,out 用於設定該變數是用來 儲存儲存過程中的資料 的,即 傳出 即函式中必須對它賦值 3,inout 是in和out的結合,具有雙向作用 4,對於,out和i...