求知過程之儲存過程回滾

2021-08-01 15:14:59 字數 1089 閱讀 8759

begin  

declare errno int;

declare continue handler for sqlexception

begin

rollback;

set errno=1;

end;

start transaction;

set errno=0;

insert into test(name) values ('hello world');

insert into test(id, name) values(1,'你好');

commit;

select errno;

end

drop procedure if exists pro_test;

create procedure pro_test

( para_a varchar(50),

para_b varchar(50)

)begin

declare result_code integer default 0; -- 定義返回結果並賦初值0

declare continue handler for sqlexception set result_code=1; -- 在執行過程中出任何異常設定result_code為1

declare continue handler for not found set result_code = 2; -- 如果表中沒有下一條資料則置為2

start transaction; -- 開始事務

/** 這裡寫具體的業務處理...

* 業務處理過程中可以根據實際情況自定義result_code

*/if result_code = 1 then -- 可以根據不同的業務邏輯錯誤返回不同的result_code,這裡只定義了1和0

rollback;

else

commit;

end if;

select result_code;

end ;

回滾操作儲存過程

create or replace procedure roll tab as v tab varchar2 3000 v roll tab varchar2 3000 v sql varchar2 1000 v sql 01 varchar2 1000 cursor cur tab is sele...

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

sql server儲存過程回滾事務

set nocount on這個很常用 作用 阻止在結果集中返回顯示受t sql語句或則usp影響的行計數資訊。當set oncount on時候,不返回計數,當set nocount off時候,返回計數 即使當set nocount on 時候,也更新 rowcount 當set nocount...