首页 > 代码库 > oracle数据库事务相关【weber出品必属精品】
oracle数据库事务相关【weber出品必属精品】
事务的概念:
事务:一个事务由一组构成一个逻辑操作的DML语句组成事务有开始有结束,事务以DML语句开始,以Conmmit和Rollback结束。
以下情况会使得事务结束:1. 执行COMMIT 或者 ROLLBACK 语句
2. 执行DDL或者 DCL语句
3. 用户退出
4. 系统崩溃
- 一个事务可以包含下列语句:
1. 对数据做出一致性修改的DML语句
2. 一个 DDL 语句
3. 一个 DCL语句
- DDL与和DCL语句执行的过程:
1. 首先发出COMMIT;
2. 执行对数据字典的DML操作
3. 如果成功,commit,如果失败,rollback
- 保证数据的一致性:没有提交的数据,其他的用户看不到
在数据永久改变之前,检查数据的改变
对逻辑相关的操作进行分组
- 控制事物:保存点(savepoint)
SQL> select * from t; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO----- ------ --------- ----- --------- ----- ----- ------ 7369 ALLEN SALESMAN 7902 17-DEC-80 1600 20 1 y 100 2 w 100 SQL> savepoint s1; Savepoint created. SQL> insert into t (empno,ename) values(3,‘b‘); 1 row created. SQL> savepoint s2; Savepoint created. SQL> delete t; 4 rows deleted. SQL> select * from t; no rows selected SQL> rollback to savepoint s2; Rollback complete. SQL> select * from t; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO----- ------ --------- ----- --------- ----- ----- ------ 7369 ALLEN SALESMAN 7902 17-DEC-80 1600 20 1 y 100 2 w 100 3 b 100 SQL> rollback to savepoint s1; Rollback complete. SQL> select * from t; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO----- ------ --------- ----- --------- ----- ----- ------ 7369 ALLEN SALESMAN 7902 17-DEC-80 1600 20 1 y 100 2 w 100 ----这里要注意了啊,因为rollback到了的s1这个保存点,也就不可以在rollback到s2这个保存点---因为s1中这个保存点没有记录到s2保存点的信息----SQL> rollback to savepoint s2;rollback to savepoint s2*ERROR at line 1:ORA-01086: savepoint ‘S2‘ never established
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。