概念:数据库
事务时对数据库执行的一个操做单元;code
特征:对象
全部的事务都有开始和结束事务
事务能够被保存或撤销it
若是事务在中途失败,事务中的任何部分都不会被记录到数据库io
一、事务控制命令至与DML命令INSERT,UPDAT和DELETE配合使用,table
二、事务完成后,事务信息会被保存在数据库里的指定区域或者临时回退区域,直到事务控制命名出现,所作的修改要么被保存在数据库,要么被放弃,而后临时回退区域被清空语法
三、若是临时回退区域没有空间,不能保存数对数据库所作的修改,数据库极可能会挂起,禁止进一步的事务操做命名
使用commit命令提交 delete from table_name where column_name = 'value' commit
注:不一样的实现对COMMIT命令的提交有所不一样数据
一、Microsoft SQL Server中,除非事务正在运行,否者语句会被自动提交
二、有些不是经过COMMIT来提交的,而是由退出数据库的操做引发提交
三、MySQL,在执行SET TRANSACTION命令以后,在数据库收到COMMIT或ROLLBACK以前,自动提交功能是不会恢复的
rollback命令用于撤销尚未被保存到数据库的命令,它只能用于撤销上一个commit或rollback命令以后的事务 用法与commit同样,
事务语句之间建立一个保存点,将大量事务操做划分为较小的,更易于管理的组
语法命名: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 savepoint_name 删除建立的保存点
Microsoft SQL Sever 不支持该命令,当事务完成后,保存点会自动删除,整个过程没必要使用COMMIT或者ROLLBACK命令
这命名用于初始化数据库事务,指定事务的特习惯
set transaction read write;读写
set transaction read only;只读