SQL-Oracle04事务处理

来源:互联网 发布:jenkins 数据库配置 编辑:程序博客网 时间:2024/05/22 04:02

事务处理

eg:创建一个只包含10部门雇员的一张临时表
CREATE TABLE emp10 AS SELECT * FROM emp WHERE deptno=10 ;

eg:删除emp10表中的7782雇员。

SELECT * FROM emp10 WHERE empno=7782 ;


从当前的窗口中发现,此时数据被删除了。
但是,现在开启第二个窗口,再次查询emp10表,观察效果;发现7782的数据还存在,
证明没有删除,实际上这就是Oracle中的事务处理概念。


  事务处理:所谓的事务处理就是保证数据操作的完整性,所有的操作要么同时成功,
要么同时失败,在Oracle中对于每一个连接到数据库的窗口(sqlplus、sqlplusw)
连接之后实际上都会与数据库的连接建立一个session,即:
每一个连接数据库上的用户都表示创建了一个session。
  一个session对数据库所做的修改,不会立刻反映到数据库的真实数据之上,
是允许回滚的,当一个session提交所有的操作之后,数据库才真正的作出修改。
  在数据库的操作中提供了以下的两个主要命令完成事务的处理:
 提交事务:commit;
 回滚事务:rollback;


eg:delete from emp10;
    commit ;//已经被删除
    rollback;//回退不会成功
    select * from emp10;//记录不存在

注:
  如果数据已经被提交了,则肯定无法回滚。
  在Oracle中关于事务的处理上也会存在一种死锁的概念。
 
  一个session如果更新了数据库中的记录,其他session是无法立刻更新的,
要等待对方提交之后才允许更新。

0 0
原创粉丝点击