MySQL运用存储过程模拟电商下单流程


一、题目要求

开发存储过程模拟电商下单
参数:用户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 
  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值