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提交了事務或者...