面试中遇到了一个关于购买商品的问题
来源:12-2 创建订单,清空购物车等功能开发1
weixin_慕标0301205
2019-09-10
老师我在面试的时候面试官问了这样一个问题,我没回答上来
如果一个人正准备支付商品的同时,后台管理员也在操作让商品下架。还怎样解决问题
写回答
2回答
-
breeze_z
2019-11-22
看是谁先操作这条数据的, 先操作会进入排它锁, 其他人操作不了这个数据
00 -
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;提交事务,第二个窗口则返回执行成功的消息
00
相似问题