事务及事务操作
来源:互联网 发布:淘宝刷销量怎么查 编辑:程序博客网 时间:2024/05/16 15:50
1、 什么是事务
事务是用于保证数据的一致性,它由一组相关的DML语句组成,该组的DML语句要么全部成功,要么全部失败。如:网上转账……
2、 事务和锁
当执行事务操作(dml语句)时,oracle会在被作用的表上加锁,防止其他用户改变表的结构,这点对我们用户来讲是很重要的。
3、 保存点和回退事务
保存点是事务中的一点,用于取消部分事务,当结束事务时,会自动的删除该事务定义的所有保存点,当执行rollback时,通过指定保存点可以回退到指定的点。
4、 提交事务
使用commit语句可以提交事务,当执行了commit语句后,会确认事务的变化、结束事务、删除保存点、释放锁、当使用commit语句结束事务后,其它会话将可以查看到事务变化后的新数据。
5、 如何在Java中操作事务呢
其实很简单,oracle是默认自动提交事务的,那么我们只要在执行事务语句之前取消自动提交,执行事务的语句过后再手动提交就可以了
假设我这有一个Connection对象的实例conn,调用这个函数:
conn.setAutoCommit(false);就可以取消自动提交了,然后我们执行一系列的中间不能打断的DML语句,完了再在最后加上这么一句:conn.commit();就可以了,如果一旦发生异常,在catch语句块中加上conn.rollback();就OK了。
6、 只读事务
只读事务是指只允许执行查询的操作,而不允许执行任何其它DML操作的事务,使用只读事务可以确保用户只能取得某时间点的数据。假定机票代售点每天18点统计今天的销售情况,这时可以使用只读事务,在设置了只读事务后,尽管其它会话可能会提交新的事务,但是只读事务将不会取得最新数据的变化,从而可以保证取得特定时间点的数据信息。
7、 设置只读事务
Set transaction read only
Oracle的一个事务是以第一个可执行的SQL语句开始,当下列事件之一发生时结束。
l 用户执行了commit语句(提交)
l 用户执行了rollback语句(回滚)
l 用户执行了DDL语句(该类型的语句是自动提交)
l 用户执行了DCL语句(该类型的语句是自动提交)
l 用户正常退出SQL*PLUS(自动提交)
l 用户非正常退出SQL*PLUS(自动回滚)
l 系统崩溃,包括硬件或软件故障(自动回滚)
其中,直接单击SQL*PLUS窗口的关闭按钮属于非正常退出。
单独或结合使用disconn或exit 命令属于正常退出。
Set autocommit on/off 开启或关闭自动提交功能
注:
在进行事务处理中,oracle数据库系统采取了这样一种方式:即有人对数据库进行读写操作(即DML操作)时,Oracle系统是允许其他人进行对数据库进行读操作的。这是因为Oracle有一个或多个称为回滚段的磁盘区,当有人对数据库中的数据进行任何写操作(DML操作)时,Oracle数据库首先将原始的数据复制到回滚段中,之后才做相应的操作,在事务处理结束之前其他的用户可以读这些数据,但读的是回滚段上的数据。
所以对于要删除大量的数据行的操作时,尽量用truncate语句而不要用delete语句,因为truncate语句属于DDL 语句,不需要使用回滚段。
- 事务及事务操作
- 事务及事务隔离
- 事务操作
- 事务操作
- 事务操作
- 事务操作
- 事务操作
- CICS事务网关-CTG原理及操作
- 关于数据库操作及事务的处理
- SQL之更新操作及事务控制
- CICS事务网关-CTG原理及操作
- Mysql事务、事务并发及、事务隔离
- 事务及事务隔离级别
- 事务及事务隔离级别
- 事务及事务的特性
- 事务
- 事务
- 事务
- JavaScript简介
- python 开源软件整理
- H264编码参数漫谈
- c#调用dll详解
- SugarCRM旧语言包移植到新语言包工具
- 事务及事务操作
- Java初学(五)——J2SE之面向对象编程4(多态、抽象类)
- P2P - Hairpinning Behavior
- 搭建ubuntu文件系统编译android
- 文本文件与二进制文件区别
- PC与西门子PLC通讯免费软件Libnodave
- xcode5试用
- 【越南风景&梯田Win7主题】
- emerge一些命令