事務的原子性

2021-07-09 08:56:54 字數 495 閱讀 5707

a想要從自己的帳戶中轉1000塊錢到b的帳戶裡。那個從a開始轉帳,到轉帳結束的這乙個過程,稱之為乙個事務。在這個事務裡,要做如下操作:

1. 從a的帳戶中減去1000塊錢。如果a的帳戶原來有3000塊錢,現在就變成2000塊錢了。

2. 在b的帳戶裡加1000塊錢。如果b的帳戶如果原來有2000塊錢,現在則變成3000塊錢了。

如果在a的帳戶已經減去了1000塊錢的時候,忽然發生了意外,比如停電什麼的,導致轉帳事務意外終止了,而此時b的帳戶裡還沒有增加1000塊錢。那麼,我們稱這個操作失敗了,要進行回滾。回滾就是回到事務開始之前的狀態,也就是回到a的帳戶還沒減1000塊的狀態,b的帳戶的原來的狀態。此時a的帳戶仍然有3000塊,b的帳戶仍然有2000塊。

我們把這種要麼一起成功(a帳戶成功減少1000,同時b帳戶成功增加1000),要麼一起失敗(a帳戶回到原來狀態,b帳戶也回到原來狀態)的操作叫原子性操作。

如果把乙個事務可看作是乙個程式,它要麼完整的被執行,要麼完全不執行。這種特性就叫原子性

事務的原子性

事務的原子性指的是,事務中包含的程式作為系統的邏輯工作單位,它所做的對資料修改操作要麼全部執行,要麼完全不執行。這種特性稱為原子性。原子性的意義是資料庫系統的基礎。也許有的人想大多數程式設計師都沒有需求去寫要求超長時間高穩定性 高健壯性執行的程式。我想這是不負責任的想法。不管你寫的是動態 嵌入式控制...

mysql原子性 MySQL事務的原子性

一 事務的acid特性 1 原子性 2 一致性 3 隔離性 4 永續性 二 對於事務的原子性 a 我們知道事務中的操作要麼都做要麼都不做。對於這一點許多人有錯誤的理解,我們來看乙個例子 1 mysql select from t4 id name 1 a 2 b 3 c 3 rows in set ...

事務的原子性與提交區別

事務的原子性 事務是資料庫的邏輯工作單位,事務中包含的各操作要麼都做,要麼都不做 要實現事務的原子性,單單靠一條commit或是rollback命令還是不行的,因為例如 commit命令它只是將乙個事務中執行成功的dml語句提交給資料庫裡。如果要實現 事務的原子性 則就需要commit和rollba...