MySQL使用(事務)

事務主要用於處理操作量大,複雜度高的數據。
比如說,在人員管理系統中,你刪除一個人員,你即需要刪除人員的基本資料,也要刪除和該人員相關的信息,如信箱,文章等等,這樣,這些數據庫操作語句就構成一個事務!

1、在 MySQL 中只有使用了 Innodb 數據庫引擎的數據庫或表才支持事務。
2、事務處理可以用來維護數據庫的完整性,保證成批的 SQL 語句要麼全部執行,要麼全部不執行。
3、事務用來管理 insert,update,delete 語句

一般來說,事務是必須滿足4個條件(ACID):原子性(Atomicity,或稱不可分割性)、一致性(Consistency)、隔離性(Isolation,又稱獨立性)、持久性(Durability)。
1、原子性:一個事務(transaction)中的所有操作,要麼全部完成,要麼全部不完成,不會結束在中間某個環節。事務在執行過程中發生錯誤,會被回滾(Rollback)到事務開始前的狀態,就像這個事務從來沒有執行過一樣。
2、一致性:在事務開始之前和事務結束以後,數據庫的完整性沒有被破壞。這表示寫入的資料必須完全符合所有的預設規則,這包含資料的精確度、串聯性以及後續數據庫可以自發性地完成預定的工作。
3、隔離性:數據庫允許多個併發事務同時對其數據進行讀寫和修改的能力,隔離性可以防止多個事務併發執行時由於交叉執行而導致數據的不一致。事務隔離分爲不同級別,包括讀未提交(Read uncommitted)、讀提交(read committed)、可重複讀(repeatable read)和串行化(Serializable)。
4、持久性:事務處理結束後,對數據的修改就是永久的,即便系統故障也不會丟失。

使用示例:
一、提交
1、開始事務:begin;
2、數據操作:insert,或update,或delete
示例:

insert into bookTable (id,name,price) values (1004,'iOS面試指南',9.99);

3、提交事務:commit;
二、回滾
1、開始事務:begin;
2、數據操作:insert,或update,或delete
示例:

insert into bookTable (id,name,price) values (1008,'iOS develop',19.00);

3、回滾動事務:rollback;

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