MySQL的深入淺出(四)—— 事務

MySQL的事務處理

◆事務就是將一組SQL語句放在同一批次內去執行
◆如果一個SQL語句出錯,則該批次內的所有SQL都 將被取消執行
◆MySQL事務處理只支持InnoDB和BDB數據表類型

1. 事務的ACID原則

在這裏插入圖片描述
原子性:一個事務(transaction)中的所有操作,要麼全部完成,要麼全部不完成,不會結束在中間某個環節。事務在執行過程中發生錯誤,會被回滾(Rollback)到事務開始前的狀態,就像這個事務從來沒有執行過一樣。

一致性:在事務開始之前和事務結束以後,數據庫的完整性沒有被破壞。這表示寫入的資料必須完全符合所有的預設規則,這包含資料的精確度、串聯性以及後續數據庫可以自發性地完成預定的工作。

隔離性:數據庫允許多個併發事務同時對其數據進行讀寫和修改的能力,隔離性可以防止多個事務併發執行時由於交叉執行而導致數據的不一致。事務隔離分爲不同級別,包括讀未提交(Read uncommitted)、讀提交(read committed)、可重複讀(repeatable read)和串行化(Serializable)。

持久性:事務處理結束後,對數據的修改就是永久的,即便系統故障也不會丟失。

2.MySQL的事務實現方法

◆使用SET語句來改變自動提交模式
SET AUTOCOMMIT = 0; # 關閉自動提交模式
SET AUTOCOMMIT = 1; # 開啓自動提交模式

◼MySQL中默認是自動提交
◼使用事務時應先關閉自動提交

◆START TRANSACTION 開始一個事務,標記事務的起始點
◆COMMIT 提交一個事務給數據庫
◆ROLLBACK 將事務回滾,數據回到本次事務的初始狀態
◆SET AUTOCOMMIT = 1; 還原MySQL數據庫的自動提交

MySQL事務處理步驟

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章