MySQL中事务控制语句_Mysql事务控制语言
什么叫做事务?
现在先假设这样一个场景:
小明和小花是一对恋人;他们分处不同的城市;
某天,iphone7出来了,小花想要一个,但肾以用完,需要向小明借钱5000,于是小明开始向小花汇款:
不管小明通过什么途径(柜台,手机银行,atm机)汇款,都必然最终要执行如下2条语句:
update 存款表 set 存款 = 存款-5000 where 账户=‘小明’;
update 存款表 set 存款 = 存款+5000 where 账户=‘小花’;
然后,小明汇款按下“确定”的时候,服务器在执行完第一条语句时突然“断电”(或其他网线被老鼠咬断。。。)。。。。
于是,他们分手了。。。
这里,出现问题的核心关键所在就是:该两条语句(2个事情),从逻辑上是必须都同时完成,这样才能保证数据的“一致性”,而这里却没有做到这一点。
事务,就是用来保证,这种需要“同时完成”的事情,能够实现同时完成的这种内部机制。
“事务安全”,是一种数据库的功能,目前,mysql只有InnoDB和BDB引擎支持。
事务,只对数据的“增删改”可以进行控制——查询语句无所谓。
事务的特点
原子性:一个事务中的所有语句,应该做到:要么全做,要么一个都不做;
一致性:让数据保持逻辑上的“合理性”,比如:一个商品出库时,既要让商品库中的该商品数量减1,又要让对应用户的购物车中的该商品加1;
隔离性:如果多个事务同时并发执行,但每个事务就像各自独立执行一样。
持久性:一个事务执行成功,则对数据来说应该是一个明确的硬盘数据更改(而不仅仅是内存中的变化)。
MySQL中事务控制语句_Mysql事务控制语言相关推荐
- mysql中视图备份_MySQL 事务、视图、索引、备份和恢复
事务 为什么需要事务: 转账.总量不变,但其他值进行变化. 事务是什么: 作为单个逻辑工作单元执行的一系列操作. 多个操作作为一个整体向系统提交,要么执行/不执行. 事务是一个不可分割的工作逻辑单元. ...
- MySQL 学习笔记(9)— 事务控制语句、事务属性以及并发和隔离级别
1. 事务概念 事务处理(transaction processing)可以用来维护数据库的完整性,它保证成批的 MySQL 操作要么完全执行,要么完全不执行. 下面是关于事务处理需要知道的几个术语: ...
- mysql中语句块当事务,Mysql 存储过程的学习笔记
技术要点 一个存储过程包括名字.参数列表,以及可以包括很多SQL语句的SQL语句集.下面为一个存储过程的定义过程: create procedure proc_name (in parameter i ...
- mysql事务概念_MySQL事务的概念
应用场景 生活中,我们往往经常会进行转账操作,转账操作可以分为两部分来完成,转入和转出.只有这两部分都完成了才可以认为是转账成功. 数据库中,这个过程是使用两条语句来完成的,如果其中任意一条语句出现了 ...
- mysql事务服务_MySQL (事务篇)
1.事务内,存在两条sql语句,第一条执行成功了,第二条执行失败了,commit之后,什么结果? 结果:第一条执行成功,第二条执行失败,不进行回滚 注意:MySQL 中的回滚,必须人为去做,在PHP ...
- mysql事务实战_mysql事务隔离级别详解和实战
A事务做了操作 没有提交 对B事务来说 就等于没做 获取的都是之前的数据 但是 在A事务中查询的话 查到的都是操作之后的数据 没有提交的数据只有自己看得到,并没有update到数据库. 查看InnoD ...
- mysql与缓存脏读_MySQL 事务的隔离级别问题 之 脏读
1. 脏读 所谓的脏读就是指一个事务读取了另一个事务未提取的数据. 试想一下:a账户要给b账户100元购买商品,如果a账户开启一个事务,执行下面的update语句做了如下转账的工作: update a ...
- mysql spring隔离级别_MySQL事务与Spring隔离级别实现
1.事务具有ACID特性 原子性(atomicity):一个事务被事务不可分割的最小工作单元,要么全部提交,要么全部失败回滚. 一致性(consistency):数据库总是从一致性状态到另一个一致性状 ...
- mysql事务嵌套 php_使用以下代码,MySQL中的PHP“嵌套”事务是否...
好的,我正在寻找使用PHP在MySQL中进行"嵌套"事务的解决方案,并且正如您在MySQL文档中所知的那样,不可能在事务内进行事务(Mysql transactions withi ...
最新文章
- 手机影音第六天 自定义播放器页面的实现(按钮暂时未监听)
- C语言用户标准是什么,C语言系统用户标准管理系统.doc
- yaml 文件格式简介
- vc调用mysql数据库操作例子
- C++程序内存分配方式(堆与栈)
- IDEA项目搭建四——使用Mybatis实现Dao层
- 四川高职计算机二本线学校,全网首发!四川省本科二批次2019年对口高职投档录取线出炉...
- 怎样使用Pycharm(Python工具)新建项目及创建Python文件
- LVS/NAT的配置和应用
- L3-014 周游世界 (30分)
- mybatis操作mysql的奇淫技巧总结(代码库)
- android微信朋友圈相册背景,Android 仿微信朋友圈图片拖拽返回
- Windows10自带应用的卸载和恢复
- GTD时间管理简洁做法
- XCode 报错Thread 2:signal SIGABRT
- HIVE中纵表转横表
- 交互媒体专题设计------《The Wiley Handbook of Human Computer Interaction》
- 力扣中国(LeetCode) 算法题 有效独数(python)
- 唯品会定时任务组件Saturn的时间不一致bug,超时
- 笑傲江湖之精忠报国,终于做完了