gpt4 book ai didi

database - postgresql:重新计算表上的行 ID

转载 作者:搜寻专家 更新时间:2023-10-30 23:15:52 25 4
gpt4 key购买 nike

我的表中有 id 列,它是:

  id     BIGSERIAL NOT NULL PRIMARY KEY, ...

在删除了一些行后,表的 ID 不一致,例如 1、10、11、12 ...即实际行数与 pg 的序列号不一致......我想我应该以某种方式重新计算行数,对吗?

最佳答案

如果您想要无缝的顺序标识符,请不要使用 SERIALBIGSERIAL (SEQUENCE)。这是一个常见问题解答。序列不仅不会重复使用已删除的 ID,而且即使您不删除任何内容,它们也可能存在间隙,因为在事务回滚或数据库不正常重启后 ID 会被丢弃。

搜索“postgresql 无间隙序列”。

我写了一点关于这个 here .

如果您使用合成键,您应该只关心一个 ID 是否等于另一个 ID。不要试图比较它们说“A 和 B 之间有多少个 ID”;这对 SEQUENCE 生成的 ID 没有意义。

关于database - postgresql:重新计算表上的行 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13883991/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com