MySQL的事務控制(二)

2021-08-28 21:47:21 字數 1047 閱讀 3189

1. mysql 通過 set autocommit,start transaction ,commit ,rollback 等語句支援本地事務。

2. 語法格式:

start transaction  | begin [work]

commit [work]   [and [no] chain]  [ [no ] release ]

set  autocommit =

3. 預設情況下,mysql是自動提交的(autocommit)的

4. 如果需要通過明確的commit 和 rollback 來提交和回滾事務,那麼就需要通過明確的事務控制命令來開始事務。

注意:這和oracle的事務管理有明細區別。

5. start  transaction  或 begin  語句可以開始一項新的事務。

6. commit 和rollback 用來提交或者回滾事務。

7. chain 和 release 子句分別用來定義在事務提交或者回滾之後的操作

chain會立即啟動乙個新事務,並且和剛才的事務具有相同的隔離級別

release 則會斷開和客戶端的連線。

8. set autocommit 可以修改當前連線的提交方式,如果設定了set autocommit=0 ,則設定之後的所有事務都需要通過明確的命令進行提交或者回滾。

注意:(1) 如果只是對某些語句需要進行事務控制,則使用start transaction 語句開始乙個事務比較方便,這樣事務結束之後可以自動回到自動提交的方式。

(2) 如果希望所有的事務都不是自動提交的,那麼通過修改autocommit 來控制事務比較方便,這樣不用再每個事務開始的時候再執行strat  transaction 語句

示例:mysql >  start transaction;

mysql > insert into actor(actor_id,first_name,last_name) values(12,'tom','lisa');

mysql> commit;  (完成提交)   或者用 commit and chain (完成本次提交,並開啟乙個新的事務)

mysql 事務控制

同乙個會話中,執行insert update delete操作後,在會話commit之前,此時當前回話執行select操作可以檢索到更改的內容,其他會話無法檢索到當前回話更改的內容 進行業務處理時,當前業務如果沒有處理成功,要rollback當前回話已經執行的insert update delete...

mysql 多事務 MySQL多事務併發控制

mysql的預設隔離級別是可重複讀。若兩個事務a和b操作同一資源,a和b都通過begin開啟事務後,若a只存在讀操作,則b可以對資料進行寫操作,且b的寫操作不會影響a的讀,即a每次讀到的內容都是一致的 就算b已經提交 若a進行了寫操作,則b的讀操作不受影響,但b的寫操作會被阻塞,直到a提交了事務或者...

MySQL多事務併發控制

mysql的預設隔離級別是可重複讀。若兩個事務a和b操作同一資源,a和b都通過begin開啟事務後,若a只存在讀操作,則b可以對資料進行寫操作,且b的寫操作不會影響a的讀,即a每次讀到的內容都是一致的 就算b已經提交 若a進行了寫操作,則b的讀操作不受影響,但b的寫操作會被阻塞,直到a提交了事務或者...