阅读(646) (7)

Laravel 8 悲观锁

2021-07-07 09:14:30 更新

查询构造器也包含了一些能够帮助您在 select 语句中实现「悲观锁」的函数。要执行一个含有「共享锁」的语句,您可以在查询中使用 sharedLock 方法。共享锁可防止指定的数据列被篡改,直到事务被提交为止:

DB::table('users')->where('votes', '>', 100)->sharedLock()->get(); 

或者,您亦可使用 lockForUpdate 方法。使用「 update 」锁可以避免数据行被其他共享锁修改或选定:

DB::table('users')->where('votes', '>', 100)->lockForUpdate()->get();