我有一个表,当添加新行时,所有现有行都需要更新。实际上,在一个“插入”完成之前,我不想允许另一个“插入”发生。因此,我猜普通的行级锁定或读取锁定是不够的,想要在事务期间直接锁定表。
在Knex中手动锁定表(ACCESS EXCLUSIVE模式)的方法是什么?我的猜测是这将涉及:
1. 运行原始SQL (锁定和解锁) 并确保使用相同的连接进行事务。 2. 是否有更好的解决方案?
另一种我正在探索的方法是使用作业队列,并让单个工作器插入记录(使用原始SQL连接)。但我被告知这在多节点场景下不起作用。
在Knex中手动锁定表(ACCESS EXCLUSIVE模式)的方法是什么?我的猜测是这将涉及:
1. 运行原始SQL (锁定和解锁) 并确保使用相同的连接进行事务。 2. 是否有更好的解决方案?
另一种我正在探索的方法是使用作业队列,并让单个工作器插入记录(使用原始SQL连接)。但我被告知这在多节点场景下不起作用。