START TRANSACTION, COMMIT, and ROLLBACK Syntax 开始事务,提交和回滚语法

那些语句提供了控制事务的使用:

1.START TRANSACTION 或者BEGIN 开始一个新的事务

2.提交当前事务,让改变永久

3.回滚 回滚当前事务,取消它的改变

4.设置autocommit  关闭或者开启

默认情况下, MySQL 运行在autocommit 启用,这意味你 你执行一个语句 更新修改表,

MySQL 存储更新到磁盘让它永久,改变不能被回滚。

禁用自动提交模式隐含的对于一些列的语句,使用 START TRANSACTION statement:

START TRANSACTION;
SELECT @A:=SUM(salary) FROM table1 WHERE type=1;
UPDATE table2 SET summary=@A WHERE type=1;
COMMIT; START TRANSACTION,autocommit 保持disabled 知道你结束事务使用COMMIT或者ROLLBACK. 自动提交模式然后恢复到之前的状态 START TRANSACTION 允许几个修改器控制事务特性,指定多个修饰符,用逗号分开。 具有一致性快照修饰符开始一个一致性读 对于存储引擎,这个应用只用于InnoDB. 影响是和执行一个 START TRANSACTION 跟着一个SELECT 语句。 See Section 15.5.2.3, “Consistent Nonlocking Reads”. 一致性快照修饰符不会改变当前的事务隔离级别,因此它提供了一致性快照只是当前的事务隔离级别 是允许一个一致性读。 唯一一个事务隔离允许一个一致性读 是 REPEATABLE READ. 对于其他隔离级别,the WITH CONSISTENT SNAPSHOT clause is ignored READ WRITE and READ ONLY modifiers设置事务访问模式。 它们允许或者阻止对表的改变 在是物理。 READ ONLY 限定 阻止事务修改或者锁定事务和非事务表 MySQL 让额外的优化对于InnoDB表的查询 当事务是只读时。 指定 READ ONLY确保 那些优化器是被应用 在只读状态不能被自动确认 如果没有指定访问模式,默认模式被应用。除非默认的已经被改变,它是 read/write. 它是不允许指定在 READ WRITE and READ ONLY 在相同的语句 在只读模式下,它仍旧可能改变使用DML语句创建的TEMPORARY 表 DDL的改变是不允许的,就像对永久表。 重要: 很多APIs 用于写MYSQL 客户端应用(比如JDBC)提供它们自己的方法用于开始事务可以代替 START TRANSACTION statement 关闭自动提交模式,使用下面的语句: SET autocommit=0; 在禁用自动提交模式通过设置autocommit variable to zero, 改变事务安全表不是立即永久的,你必须使用COMMIT来存储改变到磁盘或者回滚忽略改变。 autocommit 是一个session变量和必须设置对于每个回话,禁用autocommit 模式对于每个新的连接 BEGIN and BEGIN WORK 是被支持作为START TRANSACTION 的别名, START TRANSACTION 是一个标准SQL语法,是推荐方式开始一个ad-hoc事务,允许修改 可选择的WORK 关键字是支持的对于COMMIT 和ROLLBACK ,因为是CHAIN和RELEASE 子句。 CHAN和RELEASE 可以用于额外的控制事务完成。 开始一个事务导致任何挂起的事务被提交 开始一个事务也会导致table locks 通过 LOCK TABLES 被释放,就像你执行UNLOCK TABLES一样。 开始一个事务不会释放一个全局读锁 通过FLUSH TABLES WITH READ LOCK.获得 为了获得最好的结果,事务应该被执行只使用通过一个简单的事务安全的存储引擎的表,否则,下面的问题可能发生

mysql 开启事务的更多相关文章

  1. NodeJs mysql 开启事务

    如题:node后台使用mysql数据库,并使用事务来管理数据库操作. 这里主要讲一个事务的封装并写了一个INSERT 插入操作. code: 基础code: db.config.js const my ...

  2. MySql开启事务

    CREATE PROCEDURE test_sp1( ) BEGIN ; ; START TRANSACTION; INSERT INTO test VALUES(NULL, 'test sql 00 ...

  3. [原创]MySQL RR隔离级别下begin或start transaction开启事务后的可重复读?

    Server version:         5.6.21-log MySQL Community Server (GPL) 前提提要: 我们知道MySQL的RR(repeatable read)隔 ...

  4. Node后台使用mysql并开启事务

    如题:node后台使用mysql数据库,并使用事务来管理数据库操作. 这里主要讲一个事务的封装并写了一个INSERT 插入操作. code: 基础code: db.config.js const my ...

  5. 事务的隔离级别,mysql中开启事务、django中开启事务

    目录 一.事务的特性 二.数据库中开启事务 三.Django中开启事务的两种方式 第一种 第二种 四.事务的隔离级别 隔离级别 如何查看mysql隔离级别? 修改事务的隔离级别 隔离级别解释 read ...

  6. MySql - InnoDB - 事务 , Php版

    (出处:http://www.cnblogs.com/linguanh/) 1,前序 由于要重构APP(社交类) 服务端接口的部分代码,故接触到了 innoDB,以及事务这个词,下面主要是以例子的形式 ...

  7. MySQL 数据库事务与复制

    好久没有写技术文章了,因为一直在思考 「后端分布式」这个系列到底怎么写才合适. 最近基本想清楚了,「后端分布式」包括「分布式存储」和 「分布式计算」两大类. 结合实际工作中碰到的问题,以寻找答案的方式 ...

  8. 开启事务时mybatis返回主键id

    先说一下没有注解的 先给出实体类: public class City { private int city_id; private String city_name; public int getC ...

  9. mysql开启binlog

    mysql开启binlog,至于为什么要开启binlog,可以google下. ## 设置server_id,一般设置为IP server_id= ## 复制过滤:需要备份的数据库名,多个库以逗号分隔 ...

随机推荐

  1. Java 学习 第二篇;面向对象 定义类的简单语法:

    1:基本知识 [public / protected / private] class 类名 { 零个到多个构造器定义; 零个到多个属性; 零个到多个方法; } 其中类中各个成员之间的顺序没有关系,且 ...

  2. Android DatePickerDialog 只选择年月

    //对EditText注册OnTouch事件etSscxNssbDate.setOnTouchListener(selectDateTouchListener); //选择日期 private OnT ...

  3. C# dynamic类型

    dynamic类型是C#4.0中引入的新类型,它允许其操作掠过编译器类型检查,而在运行时处理.dynami类型在绝大多数情况下和object类型相似,不同之处在于编译器对于包含了dynamic的表达式 ...

  4. rpm包制作

    ubuntu下先下载sudo apt-get install rpm就行了. 然后测试下rpm和rpmbuild命令都是存在的.好了,OK. rpm安装包的制作有严格的自定义的路径,这个路径是在/us ...

  5. Asp.NET MVC 技术参考:http://kb.cnblogs.com/zt/mvc/

    Asp.NET MVC 技术参考:http://kb.cnblogs.com/zt/mvc/

  6. cocos2dx lua 学习笔记(二)

    安装开发环境 sublime - http://www.sublimetext.com/2 package control - http://packagecontrol.io/installatio ...

  7. IOS 添加到通讯录

    addressBookHelper.h #import <Foundation/Foundation.h> enum { ABHelperCanNotConncetToAddressBoo ...

  8. Scala--样例类(case)详解

    概述: case类在模式匹配和actor中经常使用到,当一个类被定义成为case类后,Scala会自动帮你创建一个伴生对象并帮你实现了一系列方法且带来了不少好处,如下: 1.实现了apply方法,意味 ...

  9. linux查看用户登录信息-w命令

    NAME w - Show who is logged on and what they are doing. SYNOPSIS w - [husfV] [user] DESCRIPTION w di ...

  10. 分享一个BUG

    这段时间在做改版的时候,遇上一个非常莫名其妙的bug,最终是被我的一个后端同事给发现和指正的.这个bug就是,一个js方法在ie7和ie8下面报 SCRIPT:1010 缺少标示符的错误.这个错误我百 ...