Mysql過程中區域性事務回滾

2021-09-12 12:16:41 字數 944 閱讀 4165

label_pro: begin

declare t_error integer default 0;

declare continue handler for sqlexception set t_error=1;-- 異常時設定為1

insert into temp values('test', 'test');

-- 測試第一段事務回滾

start transaction;

insert into temp values('test2', 'test2');

insert into aaaaa values(2,3); -- 製造異常

if t_error = 1 then

rollback ;

else

commit;

end if;

insert into temp values('test3', 'test3');

-- 測試第二段事務回滾

start transaction;

insert into temp values('test4', 'test4');

insert into aaaaa values(2,3);

if t_error = 1 then

rollback;

else

commit;

end if;

end

注意:只能使用continue,當遇到異常時,程式還會繼續往下執行,才能執行到回滾事務那一步,若使用exit,過程將在異常處退出,也就無法回滾事務。

declare continue handler for sqlexception set t_error=1;

declare exit handler for sqlexception set t_error=1;

MySQL儲存過程事務回滾

sql過程 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 delimiter createdefiner root localhost procedure test procedure begin declareerrnoint declarecontinueh...

儲存過程 中的事務 rollback 回滾

在編寫sql server 事務相關的儲存過程 時,經常看到下面這樣的寫法 begin tran update statement 1 update statement 2 delete statement 3 commit tran 這樣編寫的sql存在很大隱患。請看下面的例子 create ta...

mysql事務回滾

先收集網上的一些,待仔細測試研究 事務是資料庫更新操作的基本單位,事務回滾是指將該事務已經完成的對資料庫的更新操作撤銷。所謂事務是使用者定義的乙個資料庫操作序列,這些操作要麼全做要麼全不做,是乙個不可分割的工作 單位。例如,在關聯式資料庫中,乙個事務可以是一條sql語句 一組sql語句或整個程式。簡...