• MySQL事务的开启与提交,autocommit自动提交功能


    对于一个MySQL数据库(InnoDB),事务的开启与提交模式无非下面这两种情况:

    1、若参数autocommit=0,事务则在用户本次对数据进行操作时自动开启,在用户执行commit命令时提交,用户本次对数据库开始进行操作到用户执行commit命令之间的一系列操作为一个完整的事务周期。
    若不执行commit命令,系统则默认事务回滚。总而言之,当前情况下事务的状态是需要手动去提交。

    2、若参数autocommit=1(系统默认值),事务的开启与提交又分为两种状态:

    2.1、手动提交:autocommit=0
    当用户执行start transaction命令时(事务初始化),一个事务开启,当用户执行commit命令时当前事务提交。
    从用户执行start transaction命令到用户执行commit命令之间的一系列操作为一个完整的事务周期。
    若不执行commit命令,系统则默认事务回滚。

    2.2、自动提交:autocommit=1
    如果用户在当前情况下(参数autocommit=1)未执行start transaction命令而对数据库进行了操作,系统则默认用户对数据库的每一个操作为一个孤立的事务,
    也就是说用户每进行一次操作系都会即时提交或者即时回滚。这种情况下用户的每一个操作都是一个完整的事务周期。

    =================================

    设置autocommit开启和关闭的方法:
    用户可以将自动提交功能强制置为OFF。这样用户执行SQL语句后将不会被提交了,而执行COMMIT命令才提交,执行ROLLBACK命令回滚。

    查看当前自动提交功能状况:
    show variables like 'autocommit';  
    +---------------+-------+
    | Variable_name | Value |
    +---------------+-------+
    | autocommit    | ON    |
    +---------------+-------+
    1 row in set (0.06 sec)

    临时生效设置方法:
    下面是将自动提交功能置为ON以及置为OFF的具体语法。
    将自动提交功能置为ON
    SET AUTOCOMMIT=1;

    将自动提交功能置为OFF
    SET AUTOCOMMIT=0;

    永久生效设置方法:
    通过修改配置文件my.cnf文件,通过vim编辑my.cnf文件,在[mysqld](服务器选项下)添加:
    autocommit=0

  • 相关阅读:
    unzip详解,Linux系统如何解压缩zip文件?
    什么是FHS,Linux的文件系统目录标准是怎样的
    第三篇:Linux的基本操作与文件管理(纯命令行模式下)(上)
    什么是YUM
    KineticJS教程(12)
    KineticJS教程(11)
    KineticJS教程(10)
    KineticJS教程(9)
    KineticJS教程(8)
    KineticJS教程(7)
  • 原文地址:https://www.cnblogs.com/deverz/p/6547866.html
Copyright © 2020-2023  润新知