rollback函数详解

什么是 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 语句在某些数据库中会自动提交)。使用前请查阅对应数据库文档。