用锁需要先开启事务,事务提交,会自动解锁。

共享:我可以读 写 加锁 , 别人可以 读 加锁。

排他:只有我 才 可以 读 写 加锁 , 也就是说,必须要等我提交事务,其他的才可以操作。

行锁:锁只对一行生效,比如 id=1 的那行

表锁:锁对整个表都生效

死锁:互相依赖,比如:多个锁住同一 行 / 表 数据。

     DB::beginTransaction(); // 开启事务
     $good = \App\Models\Good::sharedLock()->first(); //共享锁 s锁 读锁 (名字真多...)
    //$good = \App\Models\Good::lockForUpdate()->first(); //排他锁 x锁 写锁...
     DB::commit();

    private function testLock(){    
     DB::beginTransaction();
     
     $brand = Brand::where('id', '=', 2)->lockForUpdate()->first();
     $brand->alis_name = 'bd2';
     $brand->save();
     DB::commit();
   }