0

从这里: https ://stackoverflow.com/a/27868682/10894456

SELECT ... FOR UPDATE 将使用写(独占)锁锁定记录,直到事务完成(提交或回滚)。

要选择一条记录并确保在您更新它之前它不会被修改,您可以启动一个事务,使用 SELECT ... FOR UPDATE 选择记录,进行一些快速处理,更新记录,然后提交(或回滚)事务.

在这里 https://stackoverflow.com/a/5411366/10894456

请注意,事务之外的 FOR UPDATE 是没有意义的

因此,既然没有事务的 INSERT FOR UPDATE 是没有意义的,并且事务本身使用锁,那么 INSERT FOR UPDATE 的用例是什么?我唯一的猜测:SELECT ... FOR UPDATE 只有在事务具有低隔离级别(如 read_uncommit)时才有意义,但我不确定,请帮帮我

4

1 回答 1

0

在这里找到:https ://stackoverflow.com/a/16963718/10894456

SERIALIZABLE 和使用 SELECT FOR UPDATE 之间的主要区别在于 SERIALIZABLE 总是锁定所有内容。与 SELECT FOR UPDATE 一样,您可以选择锁定的内容和时间。

所以 SELECT FOR UPDATE 让我们变得挑剔

于 2019-11-20T21:42:11.827 回答