面试中遇到了一个关于购买商品的问题

来源:12-2 创建订单,清空购物车等功能开发1

weixin_慕标0301205

2019-09-10

老师我在面试的时候面试官问了这样一个问题,我没回答上来
如果一个人正准备支付商品的同时,后台管理员也在操作让商品下架。还怎样解决问题

写回答

2回答

breeze_z

2019-11-22

看是谁先操作这条数据的, 先操作会进入排它锁, 其他人操作不了这个数据

0
0

my小司机

2019-09-10

这个自己测试一下好了,同时开启两个命令行窗口,将他们mysql的事务自动提交关闭掉

set autocommit = 0;

先在第一个窗口执行 

update mmall_product set status = 2 where id= 26; 模拟管理员商品下架 操作,

然后在第二个窗口执行

update mall_product set stock=stock-100 where id= 26; 模拟用户准备购买时扣库存的操作;

可以看到第二个窗口一直没有返回执行成功的语句,

在第一个窗口执行commit;提交事务,第二个窗口则返回执行成功的消息

0
0

从0开始 独立完成企业级Java电商网站服务端开发

前后端分离,数据库接口设计,架构设计,功能开发,上线运维

9504 学习 · 8820 问题

查看课程