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. 给兄弟说下如何处理Debian下常见的apache2的几个问题

    这段时间总是有兄弟问到在linux下的apache2配置,其实很简单,这里统一答复下. 一.安装 当然是apt-get install 最简单了, 顺便把php5和GD什么的一起装上吧,基本上不用配置 ...

  2. BZOJ NOI十连测 第二测 T2

    思路:20%可以搜索.. #include<algorithm> #include<cstdio> #include<cmath> #include<cstr ...

  3. 微控制器(MCU)破解秘笈--背景知识

    2.1 硅芯片安全措施的演变 工业控制器的硬件安全措施与嵌入式系统同时开始发展.三十年前的系统是由分离的部件如CPU,ROM,RAM,I/O缓冲器,串口和其他通信与控制接口组成的.如图2-1所示: 图 ...

  4. MotionEvent的getX(),getY()与getRawX(),getRawY()区别

    getX()是表示Widget相对于自身左上角的x坐标,而getRawX()是表示相对于屏幕左上角的x坐标值(注意:这个屏幕左上角是手机屏幕左上角,不管activity是否有titleBar或是否全屏 ...

  5. codecomb 2093【牛宫】

    题目描述 Description Hzgd神牛准备给自己盖一座很华丽的宫殿.于是,他看中了一块N*M的矩形空地.空地中每个格子都有自己的海拔高度.胡张想让他的宫殿的平均海拔在海平面之上(假设海平面的高 ...

  6. UESTC_韩爷的梦 2015 UESTC Training for Search Algorithm & String<Problem N>

    N - 韩爷的梦 Time Limit: 200/100MS (Java/Others)     Memory Limit: 1300/1300KB (Java/Others) Submit Stat ...

  7. LeeCode-Linked List Cycle

    Given a linked list, determine if it has a cycle in it. /** * Definition for singly-linked list. * s ...

  8. C语言使用正则表达式

    http://blog.chinaunix.net/uid-479984-id-2114941.html C语言使用正则表达式 据说一个好的程序员是会使用DB和Regular Expression的程 ...

  9. 格而知之9:一些关于GCD的笔记

    1.最近在重读当年刚开始学习多线程时的笔记,发觉其中有一些地方还是比较容易模糊,于是整理这篇笔记记录一下. 执行方式和队列 2.队列用来存放管理要执行的任务,它分为并发队列(Concurrent Di ...

  10. Starting httpd:Could not reliably determine the server's fully qualified domain name

    #service httpd start #Starting httpd: httpd: Could not reliably determine the server's fully qualifi ...