一、什么是事务
事务是对数据库执行的一个操作单位。
它是以逻辑顺序完成的工作单位或工作系列,无论是用户手工操作,还是由程序进行自动操作。
事务的本质特征:
所有的事务都有开始和结束;
事务可以被保存或撤销;
如果事务在中途失败,事务中的任何部分都不会被记录到数据库。
二、事务控制
事务控制是对关系型数据库管理系统(RDBMS)里可能发生的各种事务的管理能力。
控制事务的命令有3个:
COMMIT;
ROLLBACK;
SAVEPOINT。
1、COMMIT命令
语法:commit [work];
首先得先设置数据库是否自动提交:SET AUTOCOMMIT=0/1。
SQL Serve比较特别,除非事务正在运行,否则语句会被自动提交。
2、ROLLBACK命令
语法:rollback [work];
3、SAVEPOINT命令
语法:savepoint savepoint_name;
SQL Server比较特别,save transaction savepoint_name;
4、ROLLBACK TO SAVEPOINT命令
语法:rollback to savepoint_name;
注意:保存点的名称必须唯一。
5、RELEASE SAVEPOINT命令
语法:release savepoint savepoint_name;
SQL Server不支持RELEASE SAVEPOINT命令
6、SET TRANSACTION命令
set transaction read write;
set transaction read only;
三、事务控制与数据库性能