管理数据事务

 

  • 概念和特征

概念:数据库

        事务时对数据库执行的一个操做单元;code

特征:对象

        全部的事务都有开始和结束事务

        事务能够被保存或撤销it

        若是事务在中途失败,事务中的任何部分都不会被记录到数据库io

  • 机制

一、事务控制命令至与DML命令INSERT,UPDAT和DELETE配合使用,table

二、事务完成后,事务信息会被保存在数据库里的指定区域或者临时回退区域,直到事务控制命名出现,所作的修改要么被保存在数据库,要么被放弃,而后临时回退区域被清空语法

三、若是临时回退区域没有空间,不能保存数对数据库所作的修改,数据库极可能会挂起,禁止进一步的事务操做命名

  • COMMIT
使用commit命令提交
delete from table_name
where column_name = 'value'
commit

 

注:不一样的实现对COMMIT命令的提交有所不一样数据

一、Microsoft SQL Server中,除非事务正在运行,否者语句会被自动提交

二、有些不是经过COMMIT来提交的,而是由退出数据库的操做引发提交

三、MySQL,在执行SET TRANSACTION命令以后,在数据库收到COMMIT或ROLLBACK以前,自动提交功能是不会恢复的

  • ROLLBACK
rollback命令用于撤销尚未被保存到数据库的命令,它只能用于撤销上一个commit或rollback命令以后的事务

用法与commit同样,

 

  • SAVEPOINT 和 ROLLBACK TO SAVEPOINT

事务语句之间建立一个保存点,将大量事务操做划分为较小的,更易于管理的组

语法命名:savepoint savepoint_name

savepoint sp1;
Savepoint created.
delete from table_name
where column_name1 = 'value'

savepoint sp2;
Savepoint created.
delete from table_name
where colmn_name2 = 'value'

退回到名为sp1的保存点
rollback  to sp1;

注:

一、保存点的名称必须是惟一的,可是能够与表或者其余对象名称相同

二、Microsoft SQL Sever的语法稍微不一样,使用SAVE TRANSACTION,如:save transaction savepoint_name

  • RELEASE SAVEPOINT

release savepoint savepoint_name 删除建立的保存点

Microsoft SQL Sever 不支持该命令,当事务完成后,保存点会自动删除,整个过程没必要使用COMMIT或者ROLLBACK命令

  • SET TRANSCTION

这命名用于初始化数据库事务,指定事务的特习惯

    set transaction read write;读写

    set transaction read only;只读

相关文章
相关标签/搜索