MySQL 事務處理

2022-08-27 05:06:10 字數 1081 閱讀 1780

【事務】一組sql語句操作單元,組內所有sql語句,完成乙個業務。

若整組成功,意味著組內的全部操作都成功;

反之,若其中任何一條語句失敗,意味著整個操作都失敗。

操作失敗,意味著整個過程都是沒有意義的,應使資料庫回到操作前的初始狀態。

【point】1. 失敗後,能回到開始位置;

2. 成功之前,其他使用者(程序、規劃)不能看到操作內的修改。

【思路】在一組操作之前,設計乙個記號(備份點)。

【實現】利用innodb 儲存引擎的「事務日誌」功能。

執行分為2個階段:

1. 執行階段;

2. 將執行結果提交給資料庫的階段;

其中,事務日誌便是將執行階段的結果儲存,若使用者選擇提交,才將執行結果提交給資料庫。

(預設的執行方式:自動提交)

需要關閉自動提交功能(存在乙個系統變數,autocommit 可以對自動提交進行配置)

1

set autocommit =

0 ; //

0 意味著關閉自動提交功能;1 意味著開啟

若成功,執行 commit 提交結果;

若失敗,執行 rollback ,回到起始位置。

【常用的事務指令】

1. start transaction 開啟事務(作用:關閉自動提交)。

特點:若事務結束了,無論成敗,都會提交機制,回到start時的狀態(原來是autocommit,就會回到autocommit狀態)。

2. commit

3. rollback

【小練習】

1. 指令 

2. 為什麼會有事務?

自動提交、事務日誌。

3. 事務的特點?(acid)

1) 原子性:對於外界而言,事務中的sql語句是乙個整體;

2) 一致性:在事務執行過程中,資料不受其他操作的影響;

3) 隔離性:事務之間不會相互影響。

4) 永續性:事務一旦提交,意味著對資料庫產生了影響,不可以再回退。

MySQL事務處理

start transaction,commit和rollback語法 start transaction begin work commit work and no chain no release rollback work and no chain no release set autocom...

mysql事務處理

mysql的事務處理主要有兩種方法 1.用begin,rollback,commit來實現 begin開始乙個事務 rollback事務回滾 commit 事務確認 2.直接用set來改變mysql的自動提交模式 mysql預設是自動提交的,也就是你提交乙個query,就直接執行!可以通過 set ...

mysql事務處理

事務都應該具備acid特徵。所謂acid是atomic 原子性 consistent 一致性 isolated 隔離性 durable 持續性 四個詞的首字母所寫,下面以 銀行轉帳 為例來分別說明一下它們的含義 1 原子性 組成事務處理的語句形成了乙個邏輯單元,不能只執行其中的一部分。換句話說,事務...