create
procedure 儲存過程名 ([in/
out/
inout
]引數名 引數型別)
begin
sql語句
end
引數列表的情況:
我們可以先建立乙個account表,在account表中實現購物,當我們購物時,通過建立的儲存過程來顯示購物是否完成。要想展示這一結果,可以通過out返回值來顯示,同時我們在返回時要再設立乙個變數來接收這一返回值。
create
table account(
id int
auto_increment
primary
key,
name varchar(32
),cash int);
inert into account(name,cash)
values
('bank'
,900000);
inert into account(name,cash)
values
('cust'
,10000
);
儲存過程
delimiter @@
create
procedure testbuy(
in cust varchar(32
),in bank varchar(32
),in payedmoney decimal(9
,2),
out`
status
`varchar(2
))begin
declare buyres int(11
);declare soldres int(11
);declare custmoney decimal(9
,2);
set autocommit =0;
start
transaction
;--購買
update account set cash=cash-payedmoney where name =cust;
select row_count(
)into buyres;
select cash from account where name = cust into custmoney;
--售出
update account set cash=cash+payedmoney where name =bank;
select row_count(
)into soldres;
if buyres>
0&& soldres>
0&& custmoney>
0then
commit
;set
status=0
;else
rollback
;set
status=-
1;set autocommit =1;
endif
;end@@
delimiter
;
執行成功後,我們可以通過sql語局來操作account,@res用來接收返回的結果
call testbuy(
'bank,'cust',
5000
,@res
);
檢視執行結果
select
@res
如果返回為0,則說明執行成功
如果為-1,則執行失敗
也可以通過 select * from account;開檢視具體的執行結果
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...
mysql 儲存過程 MySQL儲存過程
目錄 儲存過程 簡介是一組為了完成特定功能的sql語句集合 比傳統sql速度更快 執行效率更高 儲存過程的優點 執行一次後,會將生成的二進位制 駐留緩衝區,提高執行效率 sql語句加上控制語句的集合,靈活性高 在伺服器端儲存,客戶端呼叫時,降低網路負載 可多次重複被呼叫,可隨時修改,不影響客戶端呼叫...