python中的事務


1. 為什么要有事務

事務廣泛的運用於訂單系統、銀行系統等多種場景

例如:

A用戶和B用戶是銀行的儲戶,現在A要給B轉賬500元,那么需要做以下幾件事:

  1. 檢查A的賬戶余額>500元;
  2. A 賬戶中扣除500元;
  3. B 賬戶中增加500元;

正常的流程走下來,A賬戶扣了500,B賬戶加了500,皆大歡喜。

那如果A賬戶扣了錢之后,系統出故障了呢?A白白損失了500,而B也沒有收到本該屬於他的500。

以上的案例中,隱藏着一個前提條件:A扣錢和B加錢,要么同時成功,要么同時失敗。事務的需求就在於此

所謂事務,它是一個操作序列,這些操作要么都執行,要么都不執行,它是一個不可分割的工作單位

例如,銀行轉帳工作:從一個帳號扣款並使另一個帳號增款,這兩個操作要么都執行,要么都不執行。所以,應該把他們看成一個事務。事務是數據庫維護數據一致性的單位,在每個事務結束時,都能保持數據一致性。

事務四大特性(簡稱ACID)

  • 原子性(Atomicity)
  • 一致性(Consistency)
  • 隔離性(Isolation)
  • 持久性(Durability)

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM