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,而不是依賴任何資料庫底層實現細節。

廣告

© . All rights reserved.