postgresql Postgres中DELETE不递减序列主键?[重复]

6tdlim6h  于 2022-12-23  发布在  PostgreSQL
关注(0)|答案(1)|浏览(174)
    • 此问题在此处已有答案**:

PostgreSQL gapless sequences(1个答案)
九年前就关门了。
如果在SQL Server中,我们有一个自动递增的表,有10行,最后一行是id = 10,当你删除最后一行时,你插入的下一行也会得到id = 10,对吗?
但是在Postgres中,使用bigserial作为PK,当我删除具有最大id的行,并插入一个新行时,它会不断增加越来越多的pk编号。
是这样吗?

3pmvbmvn

3pmvbmvn1#

是的。
bigserialserial只是为了方便从连接序列创建默认设置为nextval()bigint/integer列。
底层的SEQUENCE永远不会减少,序列号永远不会重用(没有手动干预)。Read the manual about sequences.
为了安全地同时使用,需要这样做。
在Postgres 10或更高版本中,请考虑IDENTITY列。

  • 自动增量表列

相关问题