直播app開發,滑動式的頂部導航欄(左右橫向滑動)
阿新 • • 發佈:2022-03-10
什麼是事務
什麼是事務,簡單理解就是:要麼都成功,要麼都失敗
比如:
a 轉賬給 b 100元
b 收到 a 的錢 100元
這兩者應該:要麼都成功,要麼都失敗
事務原則:ACID原則->【原子性、一致性、隔離性、永續性】
- 原子性:要麼都成功,要麼都失敗
- 一致性:事務前後(時間上)資料完整性一致
- 永續性:事務一旦提交則不可逆
- 隔離性:多個使用者操作一個數據庫,資料庫為每一個使用者開啟的事務,應該相互隔離,相互之間不能干擾
隔離導致的一些問題:
- 髒讀:一個事務讀取另一個事務未提交的資料
- 不可重複讀:在一個事務內讀取表中某一資料,多次讀取結果不同
- 虛讀(幻讀):在一個事務內讀取到其他事務插入的資料,導致前後讀取不一致
事務執行
MySQL預設開啟事務自動提交
手動處理事務:
set autocommit = 0 -- 關閉事務自動提交 start transaction -- 標記一個事務開始,從這句話後的sql都在一個事務內 /** * 資料操作 */ -- 提交:持久化(成功) commit -- 回滾:回到原來樣子(事務失敗) rollback -- 事務結束 set autocommit = 1 -- 恢復自動提交 savepoint 儲存點名 ; -- 設定事務儲存點 rollback to savepoint 儲存點名 ; -- 回到事務儲存點 release savepoint 儲存點名; -- 撤銷儲存點