mysql怎么使用事务 mysql事务命令( 四 )


当处理完该条记录后,则指 向下一条记录 。在多个事务并发执行时,某一事务的修改可能产 生负作用,使与这些光标有关的事务出错 。
5 未释放修改造成连锁退出 一个事务在进行修改操作的过程中可能会发生故障,这时需 要将已做的修改回退(Rollback) 。如果在已进行过或已发现错 误尚未复原之前允许其它事务读已做过修改(脏读),则会导致 连锁退出 。
6 一事务在对一表更新时,另外的事务却修改或删除此表的 定义 。数据库会为每个事务自动地设置适当级别的锁定 。
对于前面 讲述的问题:脏读、未释放修改造成的连锁退出、一事务在对一 表更新时另外的事务却修改或删除此表的定义,数据库都会自动 解决 。而另外的三个问题则需要在编程过程中人为地定义事务或 加锁来解决 。
三 事务和恢复 数据库本身肩负着管理事务的责任 。事务是最小的逻辑工作 单元,在这个工作单元中,对数据库的所有更新工作,要么必须 全部成功 , 要么必须全部失败(回退) 。
只要应用程序指定了某 段程序为一个事务并做了相应的处理(提交或回退),数据库系 统会自动维护事务本身的特性 。四 ORACLE数据库的事务定义 ORACLE事务从MIT、ROLLBACK、连接到数据库或开始第一 条可执行的SQL语句时开始,到一条MIT、ROLLBACK语句或退出 数据库时结束 。
如果在一个事务中包含DDL语句,则在DDL语句的 前后都会隐含地执行MIT语句,从而开始或结束一个事务 。如果一个事务由于某些故障或者由于用户改变主意而必须在 提交前取消它,则数据库被恢复到这些语句和过程执行之前的状 态 。
利用ROLLBACK语句可以在MIT命令前随时撤消或回退一个 事务 。可以回退整个事务,也可以会退部分事务,但是不能回退 一个已经被提交的事务 。
回退部分事务的ROLLBACK命令为: ROLLBACK to savepoint 存储点名 存储点是用户放入事务中的标记,用来表示一个可被回退的 位置 。存储点通过在事务中放入一个SAVEPOINT命令而 *** 入 。
该 命令的语法是: SAVEPOINT 存储点名 如果在ROLLBACK语句中没有给出存储点名 , 则整个事务被回 退 。五 SYBASE数据库的事务定义 SYBASE通过使用BEGIN TRANsaction和MIT TRANsaction命令指 示SQL将任意数目的语句作为一个单元来处理 。
ROLLBACK TRANsaction 命令则允许用户恢复到事务的开始,或恢复到事务内部已经被用SAVE TRANsaction命令定义的存储点上 。BEGIN TRANsaction和MIT TRANsaction能够包含任意数目的SQL 语句和存储过程,方法很简单: BEGIN TRANsaction [事务名称] MIT TRANsaction 如果一个事务由于某些故障或者由于用户改变主意而必须在提交 前取消它,则数据库被恢复到这些语句和过程执行之前的状态 。
利用ROLLBACK TRANsaction命令可以在MIT TRANsaction命令 前随时回退一个事务 。可以回退整个事务,也可以回退部分事务,但 是不能回退一个已经被提交的事务 。
ROLLBACK TRANsaction命令为: ROLLBACK TRANsaction [事务名|存储点名] 存储点名是用户放入事务中的标记,用来表示一个可以被回退的 位置 。存储点名通过在事务中放入一个SAVE TRANsaction命令而 *** 入 。
该命令的句法是: SAVE TRANsaction 存储点名 如果在ROLLBACK TRANsaction中没有给出存储点名或事务名,则 事务被回退到批处理中的第一个BEGIN TRANsaction语句处 。
如何在mysql中执行事务处理begin;sql1; sql2;.......; commit;在commit 中的语句都是事务的一部分,不过如你问题所说数据库管理系统是mysql 所以需要有个问题需要注意存储引擎是INNODB和BDB类型的数据表才支持事务处理 。

推荐阅读