如果事务中途失败,事务中的任何部分都不会被记录到数据库中;
控制事务
Commit
Rollback
Savepoint
attention:我们之前学的那些upgread呀什么的,修改数据后是可以看到修改的,但是这只是表面上的,这些修改的信息保存在一个临时空间内(当然这个空间的大小是一定的,要是数据多,修改多的时候,我们如果一直不commit,到一定程度时,数据库自己就会限制不让改了)真正的数据库并没有被改掉,一定要回撤的话是可以的;
Commit:将修改保存到数据库
将上一个commit或rollback命令之后的全部事务保存到数据库
Commit[work];
Rollback :撤销还没有被保存到数据库的命令
仅可用于撤销上一个commit或者rollback之后的命令
Rollback【work】;
Savepoint: 可用于把事务回退到这个点上,这是一个逻辑点;
Savepoint savepoint_name ;//这个是创建savepoint;
另:保存点可以有好多的,用的时候用起的名字;
这个实在事务语句之间创建了一个保存点;
rollback撤销的是一整串事务;
而savepoint撤销的是一小段一小段事务;
还有,放弃保存点是 release savepointsavepoint_name;
回退到保存点: rollback to savepoint_name;
//天啊,为什么我试行不通呀;
//明明创建好了savepoint,一用就告诉我不存在
//再用rollback也能恢复
//天啊,到底是为什么呀?
指定事务是只读或读写
Settransaction read write;
Settransaction read only;