mysql
钚该钚想
这个作者很懒,什么都没留下…
展开
-
laravel 中查看执行的sql 语句
在laravel 框架中,一般使用链式操作来对数据库进行相关的增删改查。那么如何查看我们执行的sql 呢?对于查询语句来说; 我们可以在链式操作后面加上->toSql();来打印执行的sql 语句。但是,对于其他的就不适用了。所以可以采用以下的办法:DB::enableQueryLog();UserAddress::where('id',1)->decrement('last_used_at',1);return response()->json(DB::getQueryLo原创 2020-05-27 17:41:20 · 840 阅读 · 0 评论 -
并发情况下产品超卖
在并发时减库存不能简单地通过update(['stock' => stock - $amount])来操作,在高并发的情况下会有问题。$amount = $data['amount '];update product set stock = stock - $amount where id = $id and stock >= $amount这样可以保证不会出现执行之后 stock 值为负数的情况,也就避免了超卖的问题。根据返回的受影响行数来判断是否执行成功。...原创 2020-05-27 16:05:42 · 170 阅读 · 0 评论 -
mysql update 报错
> 问题描述You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column To disable safe mode, toggle the option in Preferences -> SQL Editor and reconnect. 0.000 sec> 软件:Mysql Workbench```update table...原创 2020-05-22 18:18:00 · 249 阅读 · 0 评论 -
mysql case用法 在sql 进行分支处理
需求:两张表,线上课程表 course 表和线下表 classes 表。还有一张订单表。订单表中有一个字段platform 表示课程类型:0 表示线下, 1表示线上。需要关联查询相关订单信息。问题: 如果分开查询,会导致排序的话会很麻烦,所以还是希望在sql 语句中处理。解决:使用 sql 中的 case 来解决。SELECT a.id as orderId, cas...原创 2020-03-17 11:36:31 · 195 阅读 · 0 评论