MySql建立帶事務操作的儲存過程

2021-09-02 22:52:52 字數 783 閱讀 8601

drop procedure if exists  test_sp1   ##如果存在先刪除該儲存過程

create procedure test_proc( )    

begin    

declare t_error integer default 0;    ##定義錯誤標識變數t_error

## continue在這個地方的含義是,如果出現了sqlexception異常,程式不中止,繼續執行

declare continue handler for sqlexception set t_error=1; ##若發生sqlexcetion異常則賦值t_error為1 

start transaction;     ##開啟事務

insert into user values(null, '男');       

insert into user values('哈哈', '男');       

if t_error = 1 then    ##判斷是否有錯誤

rollback;    ##回滾

else    

commit;     ##提交

end if;    ##結束if條件

select t_error;   ##查詢t_error值,執行該儲存過程,若無異常,則t_error為0,若有異常則t_error為1  

end  

##呼叫儲存過程

call test_proc ##若無異常,則查詢結果為0,若有異常則為1  。

mysql事務操作 mysql的事務操作

倒著思考。杜絕純粹的知識填鴨教育 少廢話,是上 update table1 set money 100 where id 1 a賬戶減少100元 update table2 set money 100 where id 2 b 賬戶增加100元 問題 這是乙個簡單的銀行轉賬案例sql,由於伺服器等未...

建立mysql事務 資料庫事務的建立

使用事務解決銀行轉賬問題 關鍵語句講解 begin transaction 定義變數,用於累計事務執行過程中的錯誤 declare errorsum int set errorsum 0 初始化為0,即無錯誤 轉賬 張三的賬戶少1000元,李四的賬戶多1000元 update bank set cu...

帶事務的儲存過程 簡單模板

error 如果前乙個transact sql 語句執行沒有錯誤,則返回 0 set nocount on,防止將會話中每一條語句所影響的行數訊息發回給請求的客戶機 set xact abort on,當 transact sql 語句產生執行時錯誤,自動回滾當前事務 if exists selec...