oracle数据库事务

oracle 数据库事务

1、组成

一个或多个DML语句(数据操纵):insert、update、delete、select…
一个DDL语句(数据定义):create、drop、truncate、alter
一个DCL语句(数据控制)

2、开始和结束

以第一个DML语句的执行作为开始
结束:
* commit提交或rollback回滚
* DDL或DCL语句(自动提交)
* SQL Developer or SQL*Plus用户退出
* 系统崩溃(会话异常结束或者系统异常会导致自动回滚)

3、事务控制语句(commit、rollback、savepoint)

commit和rollback语句的优点:确保数据完整性,数据改变被提交之前预览,将逻辑上相关的操作分组
使用savepoint创建保存点:【savepoint 保存点名】
回滚到保存点:【rollback to 保存点名】

4、提交或回滚前的数据状态

改变前的数据状态是可以恢复的
执行DML操作的用户可以通过select语句查询之前的修正
其他用户不能看到当前用户所做的改变,直到当前用户结束事务
DML语句所涉及的行被锁定,其他用户不能操作

5、commit后数据的状态

数据的改变被保存到数据库中覆盖以前的数据并且不可恢复
所有的用户都可以查看结果
受影响的行的锁被释放,可供其他用户操作
所有的保存点都将被删除

6、读一致性

用户查询不受其他用户修改影响
用户修改不受其他用户查询影响
用户修改受其他用户修改的影响,必须进入等待状态
扩展:select * from dept2 for update;查询dept2的所有内容并为所有的返回结果加锁

猜你喜欢

转载自blog.csdn.net/weixin_44807657/article/details/89604432