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

相关文章
相关标签/搜索