zoukankan      html  css  js  c++  java
  • MySQL 的 autocommit

    在自动提交模式(autocommit=ON)下提交事务:

    •在自动提交模式下,每个SQL语句都是一个独立的事务。

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

    •MySQL会自动提交这个事务,这意味着向ACCOUNTS表中新插入的记录会永久保存在数据库中。

    –mysql>select * from ACCOUNTS;

    •这条select语句会查询到ID为1的ACCOUNTS记录。这表明在第一个mysql.exe程序中插入的ACCOUNTS记录被永久保存,这体现了事务的ACID特性中的持久性。

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

    •在手工提交模式下,必须显式指定事务开始边界和结束边界:

    –事务的开始边界:begin

    –提交事务:commit

    –撤销事务:rollback

    例:

    –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

    https://blog.csdn.net/aitangyong/article/details/50481161

  • 相关阅读:
    hihocoder 1038
    hihocoder 1039
    poj 2774
    bzoj 4690&&4602
    poj 2417
    STL
    poj 1026
    poj 1064
    poj 1861(prim)
    poj 1129
  • 原文地址:https://www.cnblogs.com/frankyou/p/10689380.html
Copyright © 2011-2022 走看看