postgresql - 我可以配置一个表,使插入的行始终具有更大的主键吗

标签 postgresql

我想在 Postgres 中配置一个表,使其行为类似于仅附加日志。该表将有一个自动生成的主 ID。

工作人员将按顺序处理表中的项目,并且只需要存储他们已完成的最后一行 ID。

当行 ID 小于表中的最大值时,如何防止将行写入表中(可能是某些事务比其他事务花费更长的时间)?

最佳答案

没有办法阻止表中的并发插入(除非锁定表,这是一个坏主意,因为它会破坏 autovacuum)。

因此无法保证行按特定顺序插入。在 PostgreSQL 中,插入行的顺序实际上并不是一个有意义的概念。

如果您确实想要这样做,则必须使用不同的机制来序列化插入,例如在客户端使用 PostgreSQL 咨询锁或同步机制。

关于postgresql - 我可以配置一个表,使插入的行始终具有更大的主键吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62389772/

相关文章:

ruby-on-rails - Rake 测试失败 - RunTimeError

database - 需要限制 postgres 中数据库的连接限制

sql - sql中如何根据条件计算两列数据

sql - Postgres : How to select that have every value in a range?

ruby-on-rails - 在 ruby​​ 中委派了 nil 属性

Python 脚本绕过 PostgreSQL 登录?

sql - 使用 Postgres JSON 函数从具有与其他表关系的表生成完整的 JSON 对象

Python 和 PostgreSQL : Function to insert variable arg into table?

spring - HikariConfig 和 maxPoolSize

postgresql - mac 上 postgres 10.2 的日志在哪里