手动提交模式

总结

介绍了数据库事务的手动提交模式。

简介

除了自动提交模式,数据库事务还支持手动提交模式。

手动提交模式的优势

  • 数据一致性: 可以将多个操作组合成一个事务,确保数据的一致性。如果其中一个操作失败,整个事务可以回滚,保证数据不发生异常。
  • 性能优化: 可以减少与数据库的交互次数,提高性能。

举例说明

-- 转账实现示例
 
/*使用set语句来改变自动提交模式,MySQL中默认是自动提交,使用事务时应先关闭自动提交*/
SET autocommit = 0; /*关闭*/
SET autocommit = 1; /*开启*/
 
-- 关闭自动提交
SET autocommit = 0; 
-- 开始一个事务,标记事务的起始点
START TRANSACTION; 
UPDATE account SET cash=cash-500 WHERE `name`='A';
UPDATE account SET cash=cash+500 WHERE `name`='B';
 
-- 提交事务
COMMIT; 
 
-- 回滚事务
# rollback;
 
-- 恢复自动提交
SET autocommit = 1; 
 
-- 保存点
SAVEPOINT 保存点名称 -- 设置一个事务保存点
ROLLBACK TO SAVEPOINT 保存点名称 -- 回滚到保存点
RELEASE SAVEPOINT 保存点名称 -- 删除保存点

自动提交 VS 手动提交

特征自动提交模式手动提交模式
事务提交时机每条 SQL 语句执行后自动提交需要显式调用 COMMIT 命令提交
事务范围每条 SQL 语句是一个独立的事务多条 SQL 语句可以组成一个事务
应用场景对数据一致性要求不高的场景对数据一致性要求高的场景,如转账、更新多个表等

关联文章