事务提交案例:银行转账

银行转账

条件

条件约束:转账金额<=余额

姓名余额操作后剩余
张三$1000.00$800.00
李四$0.00$200.00

关键语句:
update info set money=money-200 where name=‘张三’
update info set money=money+200 where name=‘李四’

示例

mysql> create database bank;		##创建一个银行数据库

mysql> use bank;		#进入数据库

mysql> create table info (id int(10) not null primary key auto_increment,money double not null);		#建表结构
mysql> desc info; 		#查看表结构
+-------+---------+------+-----+---------+----------------+
| Field | Type    | Null | Key | Default | Extra          |
+-------+---------+------+-----+---------+----------------+
| id    | int(10) | NO   | PRI | NULL    | auto_increment |
| money | double  | NO   |     | NULL    |                |
+-------+---------+------+-----+---------+----------------+
2 rows in set (0.00 sec)

mysql> alter table info add column name varchar(30);		#添加一个name字段
mysql> desc info;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int(10)     | NO   | PRI | NULL    | auto_increment |
| money | double      | NO   |     | NULL    |                |
| name  | varchar(30) | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
3 rows in set (0.00 sec)

insert into info (name,money) values ('zhansan',1000.00),('lisi',0.00);		#插入数据
mysql> select * from info;		#查看是否成功插入
+----+-------+---------+
| id | money | name    |
+----+-------+---------+
|  1 |  1000 | zhansan |
|  2 |     0 | lisi    |
+----+-------+---------+
2 rows in set (0.00 sec)

mysql> begin;		#开始执行事务
mysql> update info set money=money-200 where name='zhansan';		#zhansan转账200
mysql> select * from info;
+----+-------+---------+
| id | money | name    |
+----+-------+---------+
|  1 |   800 | zhansan |
|  2 |     0 | lisi    |
+----+-------+---------+
2 rows in set (0.00 sec)

mysql> update info set money=money+200 where name='lisi';		#lisi到账200
mysql> select * from info; 		#确认到账
+----+-------+---------+
| id | money | name    |
+----+-------+---------+
|  1 |   800 | zhansan |
|  2 |   200 | lisi    |
+----+-------+---------+
2 rows in set (0.00 sec)

mysql> commit;		#提交事务
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值