10.事务处理

范例:创建一个只包含10部门雇员的一张临时表

CREATE TABLE emp10 AS SELECT * FROM emp WHERE deptno=10;

然后删除编号是7782的一条信息,

DELETE RFOM emp10 WHERE empno=7782;

从当前窗口查询,可以看到数据已经被删除,但是如果开启第二个SQLplus窗口查询就会发现,这条数据还在,证明没有删除,这就是Oracle中的事务处理的概念。

事务处理:就是保证数据操作的完整性。所有的操作要么同时成功,要么同时失败。

在Oracle中对于每一个连接到数据库的窗户(SQLplus、SQLplusw)连接之后实际上都会与数据库的链接建立一个session,即每一个连接到数据库上的用户都表示创建了一个session。

    一个session对数据库所做的修改,不会立刻反应到数据库的真实数据之上,是允许回滚的,当一个session提交所有的操作之后,数据库才真正的作出修改。

在数据库的操作中提供了一下的两个主要命令完成事物的处理:

提交事务:commit;

回滚事务:rollback;

如果已经提交了就不能回滚了

死锁:一个session如果更新了数据库中的记录,其他session是无法立刻更新的,要等待对方提交之后才允许更新。