手动提交模式
总结
介绍了数据库事务的手动提交模式。
简介
除了自动提交模式,数据库事务还支持手动提交模式。
手动提交模式的优势
- 数据一致性: 可以将多个操作组合成一个事务,确保数据的一致性。如果其中一个操作失败,整个事务可以回滚,保证数据不发生异常。
- 性能优化: 可以减少与数据库的交互次数,提高性能。
举例说明
-- 转账实现示例
/*使用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 语句可以组成一个事务 |
应用场景 | 对数据一致性要求不高的场景 | 对数据一致性要求高的场景,如转账、更新多个表等 |