mysql事务内_MySQL事务
事务
1.什么是事务
要么都成功,要么都失败
SQL执行, A 给 B 转账A 1000 ——》200B200
SQL执行, B 收到 A 的钱 A 800 ——》B400
核心:将一组SQL放在一个批次中去执行~
事务原则:ACID原则 原子性,一致性,隔离性,持久性(脏读,幻读)
原子性(Atomicity):两个步骤一起成功一起失败(-200和+200必须同时发生)
一致性(Consistency):针对一个事务操作前和操作后的状态一致,最终一致性。(最后总共是1800,操作前后都不会发生变化)
持久性(Durability):事务结束后的数据不随着外界原因导致数据丢失。(事务没有提交,恢复原状。事务已经提交,持久化到数据库)
隔离性(Isolation):多个用户同时操作,排除其他事务对本次事务的影响
2.事务的隔离级别
脏读:指一个事务读取了另一个事务未提交的数据
不可重复读:在第一个事务内读取表中的某一行数据,多次读取结果不同。(不一定是错误,可能是场合不对)
幻读:指在一个事务内读取了别的事务的插入的数据,导致前后读取不一致
-- mysql 是默认开启事务自动提交的
SET autocommit = 0 /*关闭*/
SET autocommit = 1 /*开启(默认开启)*/
-- 手动处理事务
SET autocommit = 0 /*关闭*/
-- 事务开启
START TRANSACTION -- 标记一个事务的开始,从这个之后的sql都在同一个事务内
INSERT xx
INSERT xx
-- 提交:持久化(成功)
COMMIT
-- 回滚:回到原来的样字(失败)
ROLLBACK
-- 事务结束
SET autocommit = 1 /*开启*/
-- 了解
SAVEPOINT 保存点名 -- 设置一个事务的保存点
ROLLBACK TO SAVEPOINT 保存点名 -- 回滚到保持存点
RELEASE SAVEPOINT 保存点名 -- 撤销保存点
模拟场景
-- 转账
CREATE DATABASE shop CHARACTER SET utf8 COLLATE utf8_general_ci
USER shop
CREATE TABLE `account`(
`id` INT(9) NOT NULL AUTO_INCREMENT,
`name`VARCHAR(30) NOT NULL,
`money` DECIMAL(9,2) NOT NULL,
PRIMARY KEY(`id`)
)ENGINE=INNODB DEFAULT CHARSET=utf8
INSERT INTO account(`name`,`money`)
VALUES('A',2000.00),('B',10000.00)
-- 模拟转账:事务
SET autocommit = 0; -- 关闭自动提交
START TRANSACTION -- 开启一个事物
UPDATE account SET money = money - 500 WHERE `name`='A' -- A减500
UPDATE account SET money = money + 500 WHERE `name`='B' -- B加500
COMMIT; -- 提交事务
ROLLBACK; -- 回滚
SET autocommit =1; -- 恢复默认值
mysql事务内_MySQL事务相关推荐
- mysql show 原理_mysql事务的实现原理
此篇文章算是对mysql事务的一个总结,基本把mysql事务相关的知识点都涵盖到了,面试问来问去无非也就是这些,在了解这些之前我们先对mysql在执行的过程中 有一个整体的认识,如下图 如上图所示, ...
- mysql事务并发控制_mysql事务和多版本并发控制详解
一.mysql事务 事务就是一组原子性的SQL查询,或者说一个独立的工作单元.如果数据库引擎可以成功执行该组全部语句,那么就执行该组语句.如果其中有任何一条语句不能执行,那么所有的语句都不会执行.也就 ...
- mysql事务服务_MySQL (事务篇)
1.事务内,存在两条sql语句,第一条执行成功了,第二条执行失败了,commit之后,什么结果? 结果:第一条执行成功,第二条执行失败,不进行回滚 注意:MySQL 中的回滚,必须人为去做,在PHP ...
- mysql事务实战_mysql事务隔离级别详解和实战
A事务做了操作 没有提交 对B事务来说 就等于没做 获取的都是之前的数据 但是 在A事务中查询的话 查到的都是操作之后的数据 没有提交的数据只有自己看得到,并没有update到数据库. 查看InnoD ...
- mysql+nest+嵌套事务_MySQL——事务
事务(Transaction)是数据库区别于文件系统的重要特性之一,事务会把数据库从一种一致状态转换为另一种一致状态. 关键词事务四大特性ACID MySql事务隔离级别 MVCC多版本并发控制实现方 ...
- mysql当时读_Mysql事务以及四中隔离级别实例2以及InnoDB如何解决当时读的幻读问题...
接着上一篇笔记:http://blog.csdn.net/qq_33366229/article/details/78337354 第三级别(重复读): 第二种情况: 也就是基于上一种情况 事务A在事 ...
- mysql 并发性_MySQL 事务
1.什么是事务,为什么需要事务 事务(Transaction)是数据库并发控制的不可分割的基本单位,可以将一系列的数据库操作集合到一个事务中,从总体上来讲这个事务可能会对数据库进行一些变动.事务存在的 ...
- mysql 开启事物_mysql事务的开启
mysql事务的开启 对于一个MYSQL数据库(InnoDB),事务的开启与提交模式无非下面这两种情况: 1>若参数autocommit=0,事务则在用户本次对数据进行操作时自动开启,在用户执行 ...
- mysql ib_logfile 数量_Mysql 事务日志(Ib_logfile)
mysql的innodb中事务日志ib_logfile(0/1) 概念: 事务日志或称redo日志,在mysql中默认以ib_logfile0,ib_logfile1名称存在,可以手工修改参数,调节开 ...
最新文章
- 2021年大数据Hive(七):Hive的开窗函数
- SAP 零售行业相关的博客
- UVa11100 The Trip,2007(贪心)
- 英语分词组_考生必看!成人高考英语大牛教你如何轻松考高分
- Property ngOnInit does not exist on type VisibleFocusDirective
- 软件系统兼容性设计_港口大型设备状态评估及管理信息系统的设计
- Html TextArea 长度限制
- UISearchController使用方法及注意事项
- Tapestry5 事件处理函数返回结果处理策略
- 大学生游戏静态HTML网页作业--美丽中国
- Web大学生网页作业成品~美食餐饮网站设计与实现(HTML+CSS+JavaScript)
- FAT32文件系统介绍
- redis通过key模糊搜索_Redis中关于Key的模糊查找
- 读取txt文件(字符串内容),分割数组,存入Map
- linux马达驱动程序,一种Linux系统的微型针式打印机及其驱动方法与流程
- 2022腾讯实习生移动客户端开发一面(IEG)
- 编写简单的六轴机械臂
- shell 脚本与常用的bash命令
- mac文件夹怎么重命名?苹果电脑文件夹重命名快捷键
- 【狼窝乀野狼】Excel那些事儿
热门文章
- HTML 超详细空格标记
- Python 类属性和类方法、单例、异常
- Origin Pro 8.5设置文本框居中显示
- e语言mysql怎么放在超级列表框_易语言中的MYSQL操作之超级列表框使用
- 网银U盾潜在安全漏洞之忧
- 附PPT下载 | 企业数据价值现状及数据分析师的价值提升
- 丁达尔效应产生的原因_丁达尔效应产生的原因是什么
- DOM替换replaceWith()和replaceAll() 之前学习了节点的内插入、外插入以及删除方法,这节会学习替换方法replaceWith .replaceWith( newConten
- Cable Modem工作原理
- CAutoupdater通用自动升级组件