day4
1、事务(Transaction)是一个操作序列。这些操作要么都做,要么都不做,是一个不可分割的工作单位,是数据库环境中的逻辑工作单位。
2、事务是为了保证数据库的完整性
3、在oracle中,没有事务开始的语句。一个Transaction起始于一条DML(Insert、Update和Delete )语句,结束于以下的几种情况:
用户显式执行Commit语句提交操作或Rollback语句回退。
•当执行DDL(Create、Alter、Drop)语句事务自动提交。
•用户正常断开连接时,Transaction自动提交。
•系统崩溃或断电时事务自动回退。
4.1 提交或回滚前数据的状态
•以前的数据可恢复
•当前的用户可以看到DML操作的结果
•其他用户不能看到DML操作的结果
•被操作的数据被锁住,其他用户不能修改这些数据
4.2 提交后数据的状态
•数据的修改被永久写在数据库中.
•数据以前的状态永久性丢失.
•所有的用户都能看到操作后的结果.
•记录锁被释放,其他用户可操作这些记录.
4.3 回滚后数据的状态
•语句将放弃所有的数据修改
•修改的数据被回退.
•恢复数据以前的状态.
•行级锁被释放.
5.1、一旦执行了commit语句,将目前对数据库的操作提交给数据库(实际写入DB),以后就不能用rollback进行撤销。
5.2、执行一个 DDL ,DCL语句或从 SQL*Plus正常退出,都会自动执行commit命令。(如果DDL操作和我们进行过的DML语句操作的表没有关系,事务也会提交)如:
insert into emp_temp(empno,ename) values(1111,'cai10');--事务开启
create table aaa1(id number,name varchar2(20)); --上面的操作提交了