Python & MySQL - 执行事务



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

  • 原子性 - 事务要么完全完成,要么什么也不做。

  • 一致性 - 事务必须在一个一致的状态下开始,并在系统中留下一个一致的状态。

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

  • 持久性 - 一旦事务提交,其效果将是持久的,即使在系统故障后也是如此。

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

示例

您已经知道如何实现事务。这里再次提供一个类似的示例:

# Prepare SQL query to DELETE required records
sql = "Delete from tutorials_tbl where tutorial_id = 2"
try:
   # Execute the SQL command
   cursor.execute(sql)
   # Commit your changes in the database
   db.commit()
except:
   # Rollback in case there is any error
   db.rollback()

COMMIT 操作

Commit 是一个操作,它向数据库发出一个最终确认更改的信号,并且在此操作之后,无法撤销任何更改。

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

db.commit()

ROLLBACK 操作

如果您对一个或多个更改不满意,并且希望完全撤销这些更改,则可以使用rollback()方法。

这是一个调用rollback()方法的简单示例。

db.rollback()

断开数据库连接

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

db.close()

如果用户使用close()方法关闭了与数据库的连接,则任何未完成的事务都将由数据库回滚。但是,您的应用程序最好显式地调用commit或rollback,而不是依赖任何数据库底层实现细节。

广告