事务:事务可以看做是由对数据库的若干操作组成的一个单元,这些操作要么都完成,要么都取消,从而保证数据满足的一致性和完整性
事务作用:保证数据的一致性和完整性
当执行事务操作时(DML语句)时:Oracle会在被作用表上加上表锁,防止其他用户改变表结构,同时会在被作用的行上加上行锁,防止其他事务在响应的行上执行dml操作
在scott用户下修改表数据,,但不提交事务先
在system用户下,给scott用户下的emp_bak表添加一个字段,然后运行会一直在运行状态,根本运行不成功,原因是scott用户修改数据时在被作用的表上加了表锁(悲观锁)。防止其他用户改变表结构
system用户修改scott用户下的emp_bak数据也是不成功的,,因为Oracle在被作用的行上加了行锁,以防止其他事务在相应的行上执行dml操作
当scott用户提交事务之后,右边system立刻更新完成,system用户提交事务之后,soctt用户是可以看到更新后的数据的
事务的控制命令:回滚事务(rollback)
Rollback只能对未提交数据撤销,已提交的数据是无法回滚的,因为commit之后已经持久化到数据库中。