zoukankan      html  css  js  c++  java
  • 事务的隐式提交

    当使用start transaction或begin语句开启一个事务,或者将系统变量auto commit设置为off时,事务不会自动提交,但是如果当输入某些语句会隐式的被提交掉,就像输入了commit语句一样,这种因为某些特殊的语句而导致事务提交的情况叫做隐式提交,会导致事务隐式提交语句包括:

    (1)定义或修改数据库对象的数据定义语言DDL,数据库对象指的是数据库、表、视图、存储过程等。当使用create、alter、drop等语句去修改这些数据库对象时,就会隐式的提交前边的语句所属于的事务。

    (2)隐式使用或修改MySQL中的表:当使用alter user、create user、drop user、grant、rename user、set password等语句时也会隐式提交前边的语句所属于的事务。

    (3)事务控制或关于锁定的语句:当在一个事务没提交或回滚时就使用start transaction或者begin语句开启了另一个事务时,会隐式提交上一个事务。或者当前的auto commit系统变量值为off,手动改为on时,也会隐式提交前边的语句所属的事务。或者使用lock tables、unlock tables等关于锁定的语句也会隐式的提交前边语句所属的事务。

    (4)加载数据的语句。比如使用load data语句批量往数据库导入数据时,也会隐式的提交前边语句所属的事务。

    (5)其他的一些语句。使用analyze table、cache index、check table、flush、load index into cache、optimize table、repair table、reset等语句也会隐式的提交前边语句所属的事务。

    欢迎批评指正,提出问题,谢谢!
  • 相关阅读:
    C#匿名类与dynamic关键字有意思的玩法
    C#中参数化查询速度慢的原因
    拉姆达表达式的一些常用知识
    git的学习
    yield return的使用。。。
    C# Cache缓存的应用
    C# 异步编程,async与await的简单学习
    SSH
    SSM搭建手册
    PLsql快捷键
  • 原文地址:https://www.cnblogs.com/xxeleanor/p/14965388.html
Copyright © 2011-2022 走看看