知识点:Mysql 基本用法之事务
事务
事务用于将某些操作的多个SQL作为原子性操作,一旦有某一个出现错误,即可回滚到原来的状态,从而保证数据库数据完整性。
事务实例:
create table user(
id int primary key auto_increment,
name char(32),
balance int
); insert into user(name,balance)
values
('大木木',1000),
('二木木',1000),
('三木木',1000); #原子操作
start transaction;
update user set balance=900 where name='大木木'; #买支付100元
update user set balance=1010 where name='二木木'; #中介拿走10元
update user set balance=1090 where name='三木木'; #卖家拿到90元
commit; #出现异常,回滚到初始状态
start transaction;
update user set balance=900 where name='大木木'; #买支付100元
update user set balance=1010 where name='二木木'; #中介拿走10元
uppdate user set balance=1090 where name='三木木'; #卖家拿到90元,出现异常没有拿到
rollback; #回到原来的状态
commit;
mysql> select * from user;
+----+------+---------+
| id | name | balance |
+----+------+---------+
| 1 | 大木木 | 1000 |
| 2 | 二木木 | 1000 |
| 3 | 三木木 | 1000 |
+----+------+---------+
3 rows in set (0.00 sec)
附:Mysql 基本用法
一、【Mysql 基本用法之视图】
二、【Mysql 基本用法之触发器】
三、【Mysql 基本用法之事务】
四、【Mysql 基本用法之存储过程】
五、【Mysql 基本用法之函数】
六、【Mysql 基本用法之流程控制】
知识点:Mysql 基本用法之事务的更多相关文章
- 知识点:Mysql 基本用法之存储过程
存储过程 一. 介绍 存储过程包含了一系列可执行的sql语句,存储过程存放于MySQL中,通过调用它的名字可以执行其内部的一堆sql 使用存储过程的优点: 用于替代程序写的SQL语句,实现程序与sql ...
- 知识点:Mysql 基本用法之视图
视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,可以将该结果集当做表来使用. 使用视图我们可以把查询过程中的临时 ...
- 知识点:Mysql 基本用法之流程控制
流程控制 一. 条件语句 if 语句实例: delimiter // CREATE PROCEDURE proc_if () BEGIN declare i int default 0; if i = ...
- 知识点:Mysql 基本用法之函数
函数 MySQL中提供了许多内置函数 例如: sql 内置函数: 一.数学函数 ROUND(x,y) 返回参数x的四舍五入的有y位小数的值 RAND() 返回0到1内的随机值,可以通过提供一个参数(种 ...
- 知识点:Mysql 基本用法之触发器
触发器 使用触发器可以定制用户对表进行[增.删.改]操作时前后的行为 注意:没有查询 一 .创建触发器 触发器基础语法: # 插入前 CREATE TRIGGER tri_before_insert_ ...
- Mysql基本用法-存储引擎-04
MYSQL中只有 INNODB和BDB 类型的数据表才能支持事务处理!其他的类型是不支持的!(切记!) Mysql基本用法-存储引擎-02中的test_user表 和 phpcvs表 <?php ...
- 【转载】 mysql explain用法
转载链接: mysql explain用法 官网说明: http://dev.mysql.com/doc/refman/5.7/en/explain-output.html 参数: htt ...
- Mysql引起的spring事务失效
老项目加新功能,导致出现service调用service的情况..一共2张表有数据的添加删除.然后测试了一下事务,表A和表B,我在表B中抛了异常,但结果发现,表B回滚正常,但是表A并没有回滚.显示事务 ...
- mysql的innodb中事务日志ib_logfile
mysql的innodb中事务日志ib_logfile事务日志或称redo日志,在mysql中默认以ib_logfile0,ib_logfile1名称存在,可以手工修改参数,调节开启几组日志来服务于当 ...
随机推荐
- 深入浅出Node.js---Connect模块解析 。转载
文章地址:https://blog.csdn.net/zhangyuan19880606/article/details/51509205 1 Connect模块背景 Node.js的愿望是成为一个能 ...
- Running Elixir in Docker Containers
转自:https://www.poeticoding.com/running-elixir-in-docker-containers/ One of the wonderful things abou ...
- cget cmake 包管理工具
cget 是一个方便的进行cmake 包下载以及安装的工具 包含的特性 非侵入,无需编写特殊钩子就可以使用cmake 开箱即用, 由于使用了标准的基于cmake的方式,直接可以使用基于cmkae 的软 ...
- 996.icu 事件后
996.icu 事件后 雇主 更加关注效率 减少成本 分工再细化 精简人员 雇员 法律意识加强 个人权利争取 效率低者下岗 技能提高 效率提高 影响 商业社会更有效率 人力市场竞争更加激烈 国内竞争力 ...
- 如何利用 Chrome 来模拟移动网络来调试 FastAdmin 网站
如何利用 Chrome 来模拟移动网络来高度 FastAdmin 网站 因为目前大多数都在开发移动类的网页,所以客户端的速度下载速度要也考虑. 虽然都已经 4G 了,但还是要看看在网络质量很差的情况 ...
- [转]HTML 简介
HTML 实例 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <t ...
- node api 之:fs
fs.readFile() 函数会缓存整个文件. 为了最小化内存占用,尽可能优先使用 fs.createReadStream().
- 读DataSnap源代码(四)
继续篇中的 function TCustomWebDispatcher.DispatchAction(Request: TWebRequest; Response: TWebResponse): Bo ...
- VS2015和SVN合作
SVN就是版本控制管理工具. 插件这里,还是遇到了一些问题,我知道有插件了,但是忽略了开始的版本问题,按时插件安装过程中没有出现意外,故以为“插件安装成功”,岂不知此“成功”非彼“成功”.由于我用的是 ...
- 倚天剑ss
倚天剑ss https://my.potvpn.com/ https://trial.ssbit.win/