Python 和 MySQL - 执行事务


事务是一种确保数据一致性的机制。事务具有以下四个属性 −

  • 原子性 − 事务要么完成,要么什么都不发生。

  • 一致性 − 事务必须以一致状态开始,并使系统保持一致状态。

  • 隔离性 − 事务的中间结果在当前事务之外不可见。

  • 持久性 −一旦事务被提交,其效果就会持续存在,即使系统发生故障也是如此。

Python DB API 2.0 提供了两种方法来提交回滚事务。

示例

您已经知道如何实现事务。这里再次是类似的例子 −

# 准备 SQL 查询以删除所需记录
sql = "Delete from tutorials_tbl where tutorial_id = 2"
try:
    # 执行 SQL 命令
    cursor.execute(sql)
    # 在数据库中提交更改
    db.commit()
except:
    # 如果有错误则回滚
    db.rollback()

COMMIT 操作

提交操作向数据库发出绿色信号以完成更改,在此操作之后,任何更改都无法恢复。

这是一个调用 commit 方法的简单示例。

db.commit()

ROLLBACK 操作

如果您对一个或多个更改不满意,并且想要要完全恢复这些更改,请使用 rollback() 方法。

下面是调用 rollback() 方法的简单示例。

db.rollback()

断开数据库

要断开数据库连接,请使用 close() 方法。

db.close()

如果用户使用 close() 方法关闭与数据库的连接,则 DB 将回滚所有未完成的事务。但是,您的应用程序最好不要依赖任何 DB 较低级别的实现细节,而是显式调用提交或回滚。