MySQL事务控制

MySQL高级进阶

1.了解什么是事务控制
2.熟悉事务的特性
3.掌握事务控制的作用【重点】

什么是事务?

在这里插入图片描述

事务的四个特性

在这里插入图片描述

原子性:原子,不可再分割

MySQL的事务控制

在这里插入图片描述

实际演练:银行转账的例子

创建表格
create table bank_account(
	id int not null auto_increment primary key,
	name varchar(30) comment '姓名',
	balance decimal(18, 2) comment '账户余额'
);


insert into bank_account(id, name, balance) values(1, '张三', 0);
insert into bank_account(id, name, balance) values(2, '李四', 0);

update bank_account set balance=balance+1000 where id=1;
====================================================================================
查看自动提交是否开启,默认为1,开启状态。
select @@autocommit;
开启一个事务
start transaction;
张三给李四转账100
update bank_account set balance=balance-100 where id=1;
update bank_account set balance=balance+100 where id=2;
提交事务
commit;
查看表的状态,发现已经更改完毕
select * from bank_count;

mysql> select * from bank_account;
+----+------+---------+
| id | name | balance |
+----+------+---------+
|  1 | 张三 |  900.00 |
|  2 | 李四 |  100.00 |
+----+------+---------+
2 rows in set (0.00 sec)


又开启了一个事务
start transaction;
想进行再转账100的业务
update bank_account set balance=balance-100 where id=1;
update bank_account set balance=balance+100 where id=2;
发现出现错误了,想取消这个事务,那么就使用rollback回滚。
rollback;
再次查看,发现未更改
mysql> select * from bank_account;
+----+------+---------+
| id | name | balance |
+----+------+---------+
|  1 | 张三 |  900.00 |
|  2 | 李四 |  100.00 |
+----+------+---------+
2 rows in set (0.00 sec)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值