-
啥是自治事务
- 子程序中进行独立的子事务处理,且在此事务处理过程中执行COMMIT或ROLLBACK而不影响整体主事务,那么就需要通过自治事务进行控制
-
流程图:
-
- 自治事务是在主事务上单独开启的独立事务,在自治事务处理期间,主事务会暂时挂起,一直等到自治事务执行COMMIT或ROLLBACK后,才会恢复主事务执行;
-
语法与示例
- 在程序中使用自治事务,可在子程序声明部分中输入下列语句:
|
PRAGMA AUTONOMOUS_TRANSACTION; |
- 示例1:使用自治事务
|
DECLARE PROCEDURE dept_insert_proc AS PRAGMA AUTONOMOUS_TRANSACTION; --自治事务 BEGIN --此处更新将使用自治事务,主事务将被挂起 INSERT INTO dept(deptno,dname,loc) VALUES (60,'MLDN','北京') ; COMMIT ; --提交自治事务 END ; BEGIN INSERT INTO dept(deptno,dname,loc) VALUES (50,'开发部','天津') ; dept_insert_proc() ; ROLLBACK ; --此处为主事务回滚 END ; / |