logo
当前位置:首 页 > 编程技术 >后端开发 >mysql > 查看文章

最近在做微商城的功能 商城服务这边因为数据库构建不叫早,所以有些地方数据使用了UNSIGNED类型 所以 在执行部分SQL语句的时候会报错

 

我直接update的sql用了

  1. UPDATE `stock` SET `stock_real`=`stock_real`-{$num} WEHRE id={$id}

 

没有做 数量的判断 然后系统直接就报错了,这个可以在where中固定下使用

  1. UPDATE `stock` SET `stock_real`=`stock_real`-{$num} WEHRE id={$id} AND stock_real > {$num}

 

 

但是项目的上一任开发者没有做到这个限制,所以就给代码奔放的跑了;

 

然后我也就给这奔放的代码加了段

 

  1. UPDATE `stock` SET `stock_real`=`stock_real`-(IF(`store`>{$num}, {$num}, 0))
  2. WEHRE id={$id}

 

继续让代码奔放的跑吧,只要时间库存不小于0就可以了。

 

PS:如果业务逻辑需要有验证的话最好是用第二段的加WHERE中限制下,然后开启下事务,防止代码跑偏

 

 

 

说说梦想,谈谈感悟 ,聊聊技术 https://github.com/cjx2328

—— 陈 建鑫

陈建鑫
你可能也喜欢Related Posts
footer logo
未经许可请勿自行使用、转载、修改、复制、发行、出售、发表或以其它方式利用本网站之内容。站长联系:cjx2328#126.com(修改#为@)
Copyright ©ziao design Studio All Rights Reserved.沪ICP备14052271号-3