Laravel 8 悲观锁
查询构造器也包含了一些能够帮助您在 select
语句中实现「悲观锁」的函数。要执行一个含有「共享锁」的语句,您可以在查询中使用 sharedLock
方法。共享锁可防止指定的数据列被篡改,直到事务被提交为止:
DB::table('users')->where('votes', '>', 100)->sharedLock()->get();
或者,您亦可使用 lockForUpdate
方法。使用「 update 」锁可以避免数据行被其他共享锁修改或选定:
DB::table('users')->where('votes', '>', 100)->lockForUpdate()->get();