为什么SQL id序列不同步(特别是使用Postgres)?

Jak*_*ake 9 sql postgresql sequence

我已经看到了当它与它生成的主键不同步时更新序列的解决方案,但我不明白这个问题是如何发生的.

有没有人能够深入了解主键字段(默认定义为序列的下一个字段,其主键未在任何地方显式设置)如何与序列不同步?我正在使用Postgres,我们看到这种情况时不时发生.当序列为现有行生成id时,它最终会产生重复键约束.

Joe*_*Dyk 10

您的应用程序可能偶尔会为新行设置主键的值.然后postgresql不需要获取新序列,序列也不会更新.