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方法。
    
    db.commit()
    
  • 回滚操作

    如果您对一项或多项更改不满意,并且希望完全还原这些更改,请使用rollback()方法。
    这是一个简单的调用示例rollback()方法。
    
    db.rollback()
    
  • 断开数据库

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