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...