SQL:mysql 开启事务
- 转自: https://blog.csdn.net/zhaoyangjian724/article/details/52294062
- 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.获得
- 为了获得最好的结果,事务应该被执行只使用通过一个简单的事务安全的存储引擎的表,否则,下面的问题可能发生
SQL:mysql 开启事务相关推荐
- 简单介绍MySQL开启事务的两种方式
本篇文章给大家分享MySQL 是如何开启一个事务的,原文通过两种方式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧 方式 1 START TRANSACTION 或 ...
- mysql 开启事务_MySQL可重读隔离级别的底层实现原理
原创 启明南公众号 先说下MySQL的四个隔离级别:读未提交(RU).读已提交(RC).可重读(RR).串行化(Serializable),本篇文章重点讲解可重读级别下的事务细节如:MVCC.视图的创 ...
- mysql开启事务_MySQL入门之事务(上)
事务 事务介绍 事务的概念 事务指逻辑上的一组操作,组成这组操作的各个单元,要不全部成功,要不全部不成功 数据库开启事务命令 start transaction 开启事务 (等同于set autoco ...
- php mysql 开启事务
mysql_query("SET AUTOCOMMIT=0"); //设置mysql不自动提交,需自行用commit语句提交 $res1 = mysql_query($sql1); ...
- linux mysql开启事务_linux mysql 相关操作命令
1.linux下启动mysql的命令: mysqladmin start /ect/init.d/mysql start (前面为mysql的安装路径) 2.linux下重启mysql的命令: mys ...
- 4、MySQL设置事务自动提交(开启和关闭)
MySQL 默认开启事务自动提交模式,即除非显式的开启事务(BEGIN 或 START TRANSACTION),否则每条 SOL 语句都会被当做一个单独的事务自动执行.但有些情况下,我们需要关闭事务 ...
- mysql 临时表 事务_MySQL学习笔记十:游标/动态SQL/临时表/事务
逆天十三少 发表于:2020-11-12 08:12 阅读: 90次 这篇教程主要讲解了MySQL学习笔记十:游标/动态SQL/临时表/事务,并附有相关的代码样列,我觉得非常有帮助,现在分享出来大家一 ...
- oracle 开启事务_javaSE第十四部分 JDBC(2)mysql事务和JDBC实现事务
一.事务的基本介绍 1. 概念: 如果一个包含多个步骤的业务操作,被事务管理,那么这些操作要么同时成功,要么同时失败. 2. 操作: 1. 开启事务: start transaction; 2. 回滚 ...
- mysql 开启事物_mysql事务的开启
mysql事务的开启 对于一个MYSQL数据库(InnoDB),事务的开启与提交模式无非下面这两种情况: 1>若参数autocommit=0,事务则在用户本次对数据进行操作时自动开启,在用户执行 ...
最新文章
- js实现复制粘贴功能
- 设置build.gradle打包时自动加时间
- 机器学习基石作业二中的DECISION_STUMP实现
- java 小数 乘法_javascript(js)的小数点乘法除法-Java架构师必看
- 开课吧:一文读懂算法工程师大致分类与技术要求
- nginx虚拟主机配置实例
- WINHEX Scripts
- Android开发使用一行代码实现点击切换下一张图片
- C++实现堆排序算法
- 辛弃疾·青玉案·元夕
- action = “store_true
- 1000瓶有毒的水,用多少只老鼠可以试出有毒的那瓶
- 【动手学深度学习】Task05笔记汇总
- net6支持的windows版本
- mysql创建表的哈衣_地狱の沙汰も君次第日语谐音歌词, TV动画《鬼灯的冷彻》片头曲中文音译...
- 选项菜单OptionMenu
- linux fd dup 使用
- 墨客科技执行董事袁英:企业拥有基于公链之上自主可控的专属应用链是行业应用趋势...
- 2020年3月蓝桥杯校内模拟赛题解
- 【2022保研经验帖】夏令营/九推/清北/浙大/南大/北理/北邮/中科院