MYSQL數據庫事務介紹
一、數據庫事務介紹 簡單地說,事務就是指邏輯上的一組SQL語句操作,組成這組操作的各個SQL語句, 執行時要麽全成功要麽全失敗。 列如:小明給小紅轉賬5塊錢,流程如下: 1.從小明銀行卡取出5元,計算式money-5 2.把上面5塊錢打入小紅的賬號上,小紅收到5塊,money+5 上述轉賬的過程,對應的sql語句為: update xiaoming_account set money=money-5 where name=‘xiaoming‘; update xiaohong_account set money=money+5 where name=‘xiaohong‘; 上述的兩條SQL操作,在事務中的操作就是要麽都執行,要麽都不執行。 這就是事務的原子性 二、事務的四大特性(ACID) 1.原子性 事務是一個不可分割的單位,事務中的所有SQL等操作要麽都發生,要麽都不發生 2.一致性 事務發生前和發生後,數據的完整性必須保持一致 3.隔離性 當並發訪問數據庫時,一個正在執行的事務在執行完畢前,對於其他的會話是不可見的,多個並發 事務之間的數據是相互隔離的。還記得備份的參數麽? 4.持久性 一個事務一旦被提交,它的數據庫中的數據改變就是永久性。如果出了錯誤,事務也 不允許撤銷,只能通過“補償性事務” 三、事務的開啟 數據庫默認事務是自動提交的,也就是發一條sql它的執行一條。如果想多條sql放在 一個事務中執行,則需要使用事務進行處理。當我們開啟一個事務,並且沒有提交,mysql 會自動回滾事務。或者我們使用rollback命令手動回滾事務。 數據庫開啟事務命令: start transcation 開啟事務 rollback 回滾事務 commit 提交事務 set autocommit=0 禁止自動提交 set autocommit=1 開啟自動提交
本文出自 “小菜鳥” 博客,請務必保留此出處http://baishuchao.blog.51cto.com/12918589/1958433
MYSQL數據庫事務介紹