我想在 Postgres 中配置一个表,使其行为类似于仅附加日志。该表将有一个自动生成的主 ID。
工作人员将按顺序处理表中的项目,并且只需要存储他们已完成的最后一行 ID。
当行 ID 小于表中的最大值时,如何防止将行写入表中(可能是某些事务比其他事务花费更长的时间)?
最佳答案
没有办法阻止表中的并发插入(除非锁定表,这是一个坏主意,因为它会破坏 autovacuum)。
因此无法保证行按特定顺序插入。在 PostgreSQL 中,插入行的顺序实际上并不是一个有意义的概念。
如果您确实想要这样做,则必须使用不同的机制来序列化插入,例如在客户端使用 PostgreSQL 咨询锁或同步机制。
关于postgresql - 我可以配置一个表,使插入的行始终具有更大的主键吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62389772/