MySQL單機事務是指在一個MySQL數據庫中,執行的一組操作被視為一個單獨的用戶操作。它要么成功執行,所有的操作都被保存,否則所有的操作都將被回滾,不留下任何臟數據。它通常用于需要對數據庫中的多個表進行操作時,以保持數據的一致性。
// 示例代碼 START TRANSACTION; //開始事務 UPDATE account SET balance=balance-100 WHERE user='John'; //從John賬戶中扣除100元 UPDATE account SET balance=balance+100 WHERE user='Jane'; //將100元轉入Jane賬戶 COMMIT; //完成事務
在MySQL單機事務中,使用了ACID(原子性、一致性、隔離性、持久性)的概念來保證數據庫的可靠性和數據的一致性。
原子性(Atomicity):指操作是不可分割的整體,要么全部執行成功,要么全部失敗回滾。在一個事務中,所有的操作要么成功地執行,要么完全回滾。
一致性(Consistency):指事務執行后,數據庫的狀態符合預期。即保證事務的執行不會破壞數據庫的完整性和約束條件。
隔離性(Isolation):指多個事務在并發執行時,彼此互相隔離,不會產生互相干擾。在一個事務執行完成之前,其他事務不能對其進行干擾。
持久性(Durability):指事務執行成功后,對數據庫所做的更改是永久性的,即使系統崩潰或重新啟動,也不會造成數據的丟失。
在MySQL單機事務中,需要使用BEGIN或START TRANSACTION語句來開啟一個事務,并使用COMMIT或ROLLBACK語句來結束一個事務。如果沒有使用以上兩個語句之一,那么事務將自動提交。
BEGIN和START TRANSACTION語句:
BEGIN; //開啟一個事務 START TRANSACTION; //開啟一個事務
COMMIT和ROLLBACK語句:
COMMIT; //提交事務并保存所有的更改 ROLLBACK; //回滾事務并撤銷所有的更改
總之,MySQL單機事務使我們可以在多個表中進行操作,保證數據的一致性,同時還能確保數據的可靠性。
上一篇HTML小圓點代碼
下一篇C json stm32