什么是 rollback 函数?
rollback 是数据库事务处理中的一个关键操作,用于撤销当前事务中所有未提交的更改,将数据库状态恢复到事务开始之前。
rollback 的作用
在事务执行过程中,如果发生错误或需要取消操作,调用 rollback 可以确保数据的一致性和完整性,避免脏写或部分更新。
常见使用场景
- 程序异常处理(如网络中断、逻辑错误)
- 用户主动取消操作
- 违反业务规则时回退数据
代码示例
SQL 示例:
BEGIN TRANSACTION;
UPDATE accounts SET balance = balance - 100 WHERE user_id = 1;
UPDATE accounts SET balance = balance + 100 WHERE user_id = 2;
-- 若检测到错误
ROLLBACK; -- 所有更改被撤销
Python (SQLite) 示例:
import sqlite3
conn = sqlite3.connect('example.db')
try:
conn.execute("UPDATE accounts SET balance = balance - 100 WHERE user_id = 1")
conn.execute("UPDATE accounts SET balance = balance + 100 WHERE user_id = 2")
conn.commit() # 提交事务
except Exception as e:
conn.rollback() # 发生异常时回滚
finally:
conn.close()
注意事项
并非所有数据库操作都支持回滚(例如 DDL 语句在某些数据库中会自动提交)。使用前请查阅对应数据库文档。