autonomous transaction 如何工作?

Autonomous Transaction 即事务中的事务,它可以独立父事务进行提交或回滚;下面进行一个例子来看它是体现;

自治事务autonomous transaction
1.create table t
create table t(msg varchar2(25));

2.autonomous_insert procedure
create or replace procedure Autonomous_Insert
as
pragma autonomous_transaction;
begin
insert into t values('Autonomous Insert');
commit;
end;

3.create nonAutonomous Insert procedure
create or replace procedure nonAutonomous_Insert
as
begin
insert into t values('nonAutomous Insert');
commit;
end;
/
Procedure created

下面来观察PL/SQL代码匿名块非自治事务行为
begin
insert into t values ('Anonymous Block');
nonAutonomous_Insert;
rollback;
end;
/

SQL> select * from t;
 
MSG
-------------------------
Anonymous Block
nonAutomous Insert

删除t表中的数据
delete from t;
commit;

下面来观察PL/SQL代码匿名块自治事务行为
begin
insert into t values ('Anonymous Block');
Autonomous_Insert;
rollback;
end;
/

SQL> select * from t;
 
MSG
-------------------------
Autonomous Insert

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值