laravel使用lockForUpdate可并发无错更新事务锁表操作

DB::transaction(function () use ($user, &$user_award) {

            $user_award = UserAward::where([

                    ['user_id', $user->id],

                    ['status', 0],

                ])

                ->lockForUpdate()

                    ->first();

            if ($user_award) {

                $user_award->status = 1;        // 提现中状态

                $user_award->save();

            }

});

if (!is_null($user_award)) {

      $amount = $user_award->money * 100;   

}



laravel使用 lockForUpdate 可并发无错更新

DB::beginTransaction();

$goodsInfo = Goods::where('seckill_goods_id',$gid)->lockForUpdate()->first();

$goodsInfo->seckill_stock-=1;

$goodsInfo->save();

DB::commit();

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容