设为首页 加入收藏

TOP

Oracle事务处理简析
2014-11-24 02:40:13 来源: 作者: 【 】 浏览:0
Tags:Oracle 事务 处理 简析

事务用于保证数据的一致性,由一组相关dml语句(数据操作语言:增删改)组成,改组dml语句要么全部成功要么全部失败。执行事务操作时会对操作的表进行加锁,防止其他用户修改表的结构。
提交事务--commit;
确认事务的变化,结束事务,删除保存点,释放锁
保存点---savepoint a1;设置保存点,(保存点的个数没有限制)
rollback to a1;取消部分事务
rollback;取消全部事务
未commit的事务才可被回滚到保存点。
设置好保留点a1后提交事务再进行回滚提示:从未创建保留点a1
java中加入事务处理:
Java代码
Connection ct = null;
try{
Class.forName(" Oracle.jdbc,driver,OracleDriver");//加载驱动
ct = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:orcl","scott","tiger")//得到连接
ct.setAutoCommit(false);//加入事务处理
Statement sm = ct.createStatement();
//scott转给smith100元
sm.executeUpdate("update emp set sal=sal-100 where ename='SCOTT'");
sm.executeUpdate("update emp set sal=sal+100 where ename='SMITH'");
ct.commit();//提交事务 www.2cto.com
sm.close();
ct.close();
}catch (Excception ee){
try(
ct.rollback();//如果发生异常回滚
}catch (Excception ex){
ex.printStackTrace();
}
ee.printStackTrace();
}
只读事务:其他会话提交新事务,只读事务不会取得最新数据的变化,保证取得特定时间点的数据信息。如:订票 系统,利息统计,网上转账...
set transaction read only
利用子查询插入多条数据:insert select
SQL> create table myMember (myId number(4),myName varchar2(50),myDept number(5));
SQL> insert into myMember (myID,myName,myDept) select empno,ename,deptno from emp where deptno=10;
利用子查询更新数据:
//将scott的岗位工资和补助更新和SMITH相同
SQL> update emp set(job,sal,comm) = (select job,sal,comm from emp where ename='SMITH')where ename='SCOTT';

作者 小丑鱼0703
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Oracle并发控制、事务管理学习笔记 下一篇SQL SERVER 数据库事务日志 备份 ..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: