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 開啓自動提交

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