由于使用 PostgreSQL 上的序列作为表主键的默认值,导致 id 列出现间隙。当事务回滚时,序列值不会回滚,因此 id 列将不是连续的。我试图消除这些差距,但它似乎影响了性能。我现在的想法是记录那些丢失的 ID 以及错误消息和请求负载。因此,我很难获取数据库事务回滚时按序列生成的 ID。
请建议在函数回滚时从数据库获取丢失的序列 ID 的方法,以便我们可以记录它。
我们通过以下方式解决了这个问题: