我有两张与分类帐有关的表A和表B。
许多事务同时发生在a和b中。
面临的问题是:
[28] - A insert success for source entity_id: id001
[28] - B update success for destination entity_id: id002
[28] - A insert success for destination entity_id: id002
[71] - B update success for source entity_id: id001
[28] - commit success for [28] with amount 100
线程71在线程28将更改提交到分类帐之前更新表B。
这是因为postgres在进程使用表时会锁定它。
如何使线程等待当前线程完成提交?
如何在Postgres中锁定记录?(以便用户可以访问表中的其他帐户)
最佳答案
默认情况下,Postgres会锁定记录。参见docs。
对于提供的日志,最后一个日志必须在提交事务之后。每当事务完成时,等待线程立即接管,这一定是日志以这种方式显示的原因。
关于database - 锁定表直到事务提交,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40887247/