Python 和 MySQL - 执行事务


事务是一种保证数据一致性的机制。交易具有以下四个属性 -

  • Atomics性- 事务要么完成,要么什么也没有发生。

  • 一致性- 事务必须以一致的状态开始并使系统处于一致的状态。

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

  • 持久性- 一旦事务被提交,即使在系统发生故障之后,其影响也是持久的。

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方法的简单示例。

db.commit()

回滚操作

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

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

db.rollback()

断开数据库连接

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

db.close()

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