oracle学习9

一、事务

 

从一种状态到另一种状态:

比如转账:一个人的钱多了或者少了

1.COMMIT 

2.ROLLBACK 

3.SAVEPOINT 


SELECT * from ms_brda1
(1)select count(*) from ms_brda1

(2)delete from ms_brda1 where brid=158475
select count(*) from ms_brda1

(3)savepoint a;
select count(*) from ms_brda1

(4)delete from ms_brda1 where brid=158477
select count(*) from ms_brda1
(5)savepoint b;

(6)rollback to savepoint a;

(7)rollback to savepoint b; 

(8)rollback ;

(1)

 

(2)

(3)savepoint a;

(4)

(5)savepoint b;

(6)rollback to savepoint a;

(7)rollback to savepoint b; 

上面的情况是因为没分清楚先后顺序

先设置的“保存点A”,然后设置的“保存点B”

你已经回滚到A了,已经越过B了,再想回到B是不可以的

但是可以先回到B再回到A,

(8)rollback ;

而rollback是回到最初的状态

这样是因为deleted与select需要手动commit

所以可以rollback到最初的状态

原文地址:https://www.cnblogs.com/thomasbc/p/7267111.html