MYSQL數據庫事務介紹

1、數據庫事務介紹 簡單地說,事務就是指邏輯上的一組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操做,在事務中的操做就是要麼都執行,要麼都不執行。 這就是事務的原子性 2、事務的四大特性(ACID) 1.原子性 事務是一個不可分割的單位,事務中的全部SQL等操做要麼都發生,要麼都不發生 2.一致性 事務發生前和發生後,數據的完整性必須保持一致 3.隔離性 當併發訪問數據庫時,一個正在執行的事務在執行完畢前,對於其餘的會話是不可見的,多個併發 事務之間的數據是相互隔離的。還記得備份的參數麼? 4.持久性 一個事務一旦被提交,它的數據庫中的數據改變就是永久性。若是出了錯誤,事務也 不容許撤銷,只能經過「補償性事務」 3、事務的開啓 數據庫默認事務是自動提交的,也就是發一條sql它的執行一條。若是想多條sql放在 一個事務中執行,則須要使用事務進行處理。當咱們開啓一個事務,而且沒有提交,mysql 會自動回滾事務。或者咱們使用rollback命令手動回滾事務。 數據庫開啓事務命令: start transcation   開啓事務 rollback    回滾事務 commit    提交事務 set autocommit=0 禁止自動提交 set autocommit=1 開啓自動提交mysql

相關文章
相關標籤/搜索