知识点: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名称存在,可以手工修改参数,调节开启几组日志来服务于当 ...
随机推荐
- Java基础一(开发环境、注释、关键字、标识符、数据)
1.Java开发环境搭建2.HelloWorld案例3.注释.关键字.标识符4.数据(数据类型.常量) ###01java语言概述 * A: java语言概述 * a: Java是sun公司开发的一门 ...
- 使用 loki grafana 分析nginx 请求日志
loki 是类似prometheus 的log 可视化展示.收集系统,已经集成在grafana 6.0 版本中了 说明: 测试环境使用了docker-compose 运行 环境准备 docker-co ...
- 转载:扒一扒Profiler中这几个“占坑鬼”
https://blog.uwa4d.com/archives/presentandsync.html WaitForTargetFPS.Gfx.WaitForPresent 和 Graphics.P ...
- mysql之 表数据存放路径非datadir目录
假如,新建一张表,并让该表的存储路径 不是默认的/path/to/datadir/dbname .而是 指定存储的位置 应该如何处理? 方法一shell> mkdir /Generalt1she ...
- ElementUI(vue UI库)、iView(vue UI库)、ant design(react UI库)中组件的区别
ElementUI(vue UI库).iView(vue UI库).ant design(react UI库)中组件的区别: 事项 ElementUI iView ant design 全局加载进度条 ...
- STL 的 vector 根据元素的值来删除元素的方法
vector 的 erase( ) 只能删除迭代器,所以要想删某种值的元素,需要这样: 假设有一个 vector 叫 vt ,则 vt.erase( remove( vt.begin() , vt.e ...
- 【转】python:让源码更安全之将py编译成so
python:让源码更安全之将py编译成so 应用场景 Python是一种面向对象的解释型计算机程序设计语言,具有丰富和强大的库,使用其开发产品快速高效. python的解释特性是将py编译为独有的二 ...
- mybatis 使用oracle merge into 语句踩坑实录
由于需求涉及oracle的clob类型字段,在mybatis的mapper xml文件中编写merge into语句时总是失败. 附上错误代码 <insert id="mergeInt ...
- Tomcat里面的APR配置问题研究
这里,之所以研究这个问题,是因为我们的生产系统Linux环境下的tomcat日志里面,启动信息的地方有这么一个WARNING. INFO: The APR based Apache Tomcat Na ...
- MySQL行级锁测试
http://blog.csdn.net/bigtree_3721/article/details/77417518 http://blog.csdn.net/zengxuewen2045/artic ...