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. Effective Java2读书笔记-创建和销毁对象(二)

    第3条:用私有构造器或者枚举类型强化Singleton属性 这一条,总体来说,就是讲了一个小技巧,将构造器声明为private,可以实现单例.具体有以下几种实现的方式. ①最传统的单例实现模式,可能有 ...

  2. javacc

    http://www.cnblogs.com/Gavin_Liu/archive/2009/03/07/1405029.html https://javacc.java.net/ http://www ...

  3. android 控件的移动

    android 控件的移动 1. Java代码 imagebutton.setOnTouchListener(newOnTouchListener(){ int[]postion=newint[]{0 ...

  4. Unique Paths 解答

    Question A robot is located at the top-left corner of a m x n grid (marked 'Start' in the diagram be ...

  5. Hamming code

    Also known as (7,4) code,7 trainsmitted bits for 4 source code. TRANSMIT The transmitted procedure c ...

  6. linux下java调用.so动态库方法2: JNA

    摘自:http://blog.csdn.net/todorovchen/article/details/21319033 另请参见: http://blog.sina.com.cn/s/blog_8c ...

  7. Class对象

    (一) 获得Class对象的四种方式 第1种方法:Object.getClass() 第2种方法:.class语法 第3种方法:Class.forName() 第4种方法:包装类的TYPE域 impo ...

  8. 获取某月第一天,最后一天的sql server脚本

    本文来自:http://blog.csdn.net/chaoowang/article/details/9167969 这是计算一个月第一天的SQL 脚本:   SELECT DATEADD(mm, ...

  9. cocos2d-x绑定ccb文件

    首先,ccb文件是如何生成的,我就不多说了,大家可以搜下cocosbuilder,就能找的相关的教程,而通过cocosbuilder,我们可以省去了很多设计的麻烦,比如设计一个精灵的位置啥的,而通过c ...

  10. Oracle SQL函数之数学函数

    Oracle SQL函数之数学函数 ABS(x) [功能]返回x的绝对值 [参数]x,数字型表达式 [返回]数字 SQL> SELECT ABS(),ABS(-) FROM DUAL; ABS( ...