博客說明程序員
文章所涉及的資料來自互聯網整理和我的總結,意在於我的學習和經驗彙總,若有什麼地方侵權,請聯繫本人刪除,謝謝!
若是一個包含多個步驟的業務操做,被事務管理,那麼這些操做要麼同時成功,要麼同時失敗sql
1. 開啓事務: start transaction; 2. 回滾:rollback; 3. 提交: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;
存在問題:數據庫
隔離級別:安全
read uncommitted:讀未提交學習
read committed:讀已提交 (Oracle)code
repeatable read:可重複讀 (MySQL默認)事務
serializable:串行化字符串
數據庫查詢隔離級別:博客
數據庫設置隔離級別:it
感謝
黑馬程序員以及勤勞的本身