一、题目要求
开发存储过程模拟电商下单
参数:用户id
、商品id
、购买数量
要求:用事务
控制
具体流程
1 计算支付金额,验证用户账户余额是否充足,不够返回下单失败信息:账户余额不足
2 验证商品库存是否充足,如果充足则扣减商品库存,否则返回下单失败信息:库存不足
3 若余额和库存都满足,扣减用户账户余额
4 生成订单
5 生成支付流水
表格要求
表名 | 字段 |
---|---|
商品表 | 商品id、商品名称、单价、库存数量 |
用户表 | 用户id、用户名、手机号、账户余额四个字段 |
订单表 | 订单号、用户id、商品id、购买数量、支付金额、交易时间 |
交易流水表 | 流水id、用户id、订单号、交易类型(1支付、0充值)、交易时间(要求与订单表时间一致) |
二、建表
1.商品表
源码
CREATE TABLE `product` (
`pid` int NOT NULL AUTO_INCREMENT COMMENT '商品编号',
`pname` varchar(25) NOT NULL COMMENT '商品名称',
`unit_price` decimal(10,2) DEFAULT NULL COMMENT '单价',
`remain_number` int DEFAULT NULL COMMENT '库存数量',
PRIMARY KEY (`pid`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb3;
INSERT INTO `product` (`pid`, `pname`, `unit_price`, `remain_number`) VALUES (1, 'STM32', 40.00, 6);
INSERT INTO `product` (`pid`, `pname`, `unit_price`, `remain_number`) VALUES (2, 'STM30', 10.00, 20);
INSERT INTO