MySQL 的 autocommit

在自動提交模式(autocommit=ON)下提交事務:

•在自動提交模式下,每一個SQL語句都是一個獨立的事務。html

–mysql>insert into ACCOUNTS values(1,'Tom',1000);mysql

•MySQL會自動提交這個事務,這意味着向ACCOUNTS表中新插入的記錄會永久保存在數據庫中。sql

–mysql>select * from ACCOUNTS;數據庫

•這條select語句會查詢到ID爲1的ACCOUNTS記錄。這代表在第一個mysql.exe程序中插入的ACCOUNTS記錄被永久保存,這體現了事務的ACID特性中的持久性。.net

 

在手工模式下(autocommit=OFF)提交事務:

•在手工提交模式下,必須顯式指定事務開始邊界和結束邊界:htm

–事務的開始邊界:beginblog

–提交事務:commit事務

–撤銷事務:rollbackget

例:it

–mysql>begin;
–mysql>select * from ACCOUNTS;
–mysql>commit;

在手工提交模式下,一個事務結束的標誌爲提交事務或者撤銷事務。 

MySQL默認的存儲引擎是MyISAM,MyISAM存儲引擎不支持事務處理,因此改變autocommit沒有什麼做用。但不會報錯,因此要使用事務處理的童鞋必定要肯定你所操做的表示支持事務處理的,如InnoDB。若是不知道表的存儲引擎能夠經過查看建表語句查看建表的時候有沒有指定事務類型的存儲引擎,若是沒有指定存儲引擎默認則是MyISAM不支持事務的存儲引擎。

 

相關文章收集:

https://www.cnblogs.com/edwardlost/archive/2012/03/13/2394312.html

http://www.javashuo.com/article/p-huguutnz-ct.html

相關文章
相關標籤/搜索