zoukankan      html  css  js  c++  java
  • 14.5.2.2 autocommit, Commit, and Rollback

    14.5.2.2 autocommit, Commit, and Rollback 
    
    在InnoDB,所有的用户活动发生在一个事务里, 如果自动提交模式是启用的,
    
    每个SQL语句形成一个单独的事务。默认情况下, 
    
    MySQL开启一个session用于每个新的连接在自动提交启用的情况下,
    
    因此MySQL 做一个提交在每个SQL语句如果语句不返回错误。
    
    
    一个session 启用自动提交可以执行一个多语句的事务通过使用一个显示的START TRANSACTION or BEGIN statement 
    
    结束使用COMMIT or ROLLBACK statement.
    
    
    如果自动提交模式是被禁用 使用一个会话  SET autocommit = 0,
    
    session 总是会打开一个事务会话。 一个COMMIT 或者ROLLBACK语句 结束当前的事务 然后开启一个新的
    
    
    如果一个会话有自动提交关闭 结束没有一个显示的提交最终的事务, MySQL 回滚那个事务
    
    
    某些语句显示的借宿事务,如果你做了一个commit 在执行语句前
    
    
    使用事务匹配提交:
    
    默认情况下,一个连接到MySQL server 会开启自动提交,这个会自动提交每个SQL语句当你执行它时。
    
    
    这种操作的模式可能不熟悉如果你有其他数据库的经验, 是标准的执行一系列DML语句 提交它们或者回滚它们
    
    
    使用多语句事务,切换自动提交关闭使用SQL语句SET autocommit = 0 
    
    然后结束事务使用COMMIT 或者ROLLBACK 。
    
    如果开启自动提交, 开始每个事务 使用 START TRANSACTION 使用COMMIT或者ROLLBACK结束
    
    
    下面的例子显示2个事务,第1个是提交的,第2个是回滚的
    
    shell> mysql test
    
    mysql> CREATE TABLE customer (a INT, b CHAR (20), INDEX (a));
    Query OK, 0 rows affected (0.00 sec)
    mysql> -- Do a transaction with autocommit turned on.
    mysql> START TRANSACTION;
    Query OK, 0 rows affected (0.00 sec)
    mysql> INSERT INTO customer VALUES (10, 'Heikki');
    Query OK, 1 row affected (0.00 sec)
    mysql> COMMIT;
    Query OK, 0 rows affected (0.00 sec)
    mysql> -- Do another transaction with autocommit turned off.
    mysql> SET autocommit=0;
    Query OK, 0 rows affected (0.00 sec)
    mysql> INSERT INTO customer VALUES (15, 'John');
    Query OK, 1 row affected (0.00 sec)
    mysql> INSERT INTO customer VALUES (20, 'Paul');
    Query OK, 1 row affected (0.00 sec)
    mysql> DELETE FROM customer WHERE b = 'Heikki';
    Query OK, 1 row affected (0.00 sec)
    mysql> -- Now we undo those last 2 inserts and the delete.
    mysql> ROLLBACK;
    Query OK, 0 rows affected (0.00 sec)
    mysql> SELECT * FROM customer;
    +------+--------+
    | a    | b      |
    +------+--------+
    |   10 | Heikki |
    +------+--------+
    1 row in set (0.00 sec)
    mysql>
    
    

  • 相关阅读:
    ArcGIS Pro获得一个要素图层一种方法
    ArcGIS Pro layout clone
    ActiveMapViewChanged和选择变化
    ArcGIS Pro 改变栅格的数据源
    ArcGIS Pro自定义图标
    Windows Server 2016 路由和远程访问
    IIS应用程序池_缓存回收
    asp.net RSA密钥之C#格式与Java格式转换(PEM格式)
    MD5和Hash
    C# list与数组的转换
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13350127.html
Copyright © 2011-2022 走看看