在idea開啟熱部署
阿新 • • 發佈:2022-03-10
一、概念
如果一個包含多個步驟的業務操作,被事務管理,那麼這些操作要麼同時成功,要麼同時失敗
二、操作
-- 開啟事務:
start transaction;
-- 回滾:
rollback;
--提交:
commit;
三、舉例
CREATE TABLE account (
id INT PRIMARY KEY AUTO_INCREMENT,
NAME VARCHAR(10),
balance DOUBLE
);
-- 新增資料
INSERT INTO account (NAME, balance) VALUES ('zhangsan', 1000), (' lisi', 1000);
SELECT * FROM account;
UPDATE account SET balance = 1000;
-- 張三給李四轉賬 500 元
-- 0. 開啟事務
START TRANSACTION;
-- 1. 張三賬戶 -500
UPDATE account SET balance = balance - 500 WHERE NAME = 'zhangsan';
-- 2. 李四賬戶 +500
-- 出錯了
UPDATE account SET balance = balance + 500 WHERE NAME = 'lisi';
-- 發現執行沒有問題,提交事務
COMMIT;
-- 發現出問題了,回滾事務
ROLLBACK;
四、事務提交
1、事務提交的兩種方式
① 自動提交
- mysql 就是自動提交的
- 一條DML(增刪改)語句會自動提交一次事務
② 手動提交
- Oracle 資料庫預設是手動提交事務
- 需要先開啟事務,再提交
2、修改事務的預設提交方式
檢視事務的預設提交方式:
-- 1 代表自動提交 0 代表手動提交
SELECT @@autocommit;
修改預設提交方式:
set @@autocommit = 0;
五、事務的四大特徵
① 原子性:是不可分割的最小操作單位,要麼同時成功,要麼同時失敗
② 永續性:當事務提交或回滾後,資料庫會持久化的儲存資料
③ 隔離性:多個事務之間,相互獨立
④ 一致性:事務操作前後,資料總量不變