当我在特定键上使用select_for_update
时,调用永远不会返回。
常规选择有效:
MyModel.objects.get(pk=pk_1) # Works
但是select_for_update
没有:
with transaction.atomic():
MyModel.objects.select_for_update().get(pk=pk_1) # Blocks forever
如果我将pk_1
更改为其他密钥,则可以正常运行。我不知道为什么行会被锁定。没有其他与数据库的连接(为了确定这一点,我已经重置了所有具有数据库访问权限的计算机,但调用仍然阻止了这个特定的密钥)。
这可能是什么原因?