PostgreSQL BigSerial错误:重复的键值违反了唯一约束“ investigations_pkey” [duplicate]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PostgreSQL BigSerial错误:重复的键值违反了唯一约束“ investigations_pkey” [duplicate]相关的知识,希望对你有一定的参考价值。

我正在使用PostgreSQL数据库,我使用QGIS作为前端。

我的一个表使用bigserial作为其主ID的数据类型,这是我的想法,我不必为此字段打扰。前200个左右的条目工作正常,但现在尝试保存新条目时出现以下错误:

> PostGIS error while adding features: ERROR:  duplicate key value
> violates unique constraint "investigations_pkey" DETAIL:  Key
> (id)=(230) already exists.

我的ID计数器现在已经达到280,但是我必须手动输入最后50个左右的ID。可能某些条目已被删除,现在bigserial的计数器被混淆了。有没有一种方法可以将计数器“重置”为某个数字?

答案

我假设id是serial列:您可以使用setval函数将序列设置为某个值(documentation

关于PostgreSQL serial列的一个警告是,显式设置列的值没有向前移动相应的序列;这是最不匹配的原因。

以上是关于PostgreSQL BigSerial错误:重复的键值违反了唯一约束“ investigations_pkey” [duplicate]的主要内容,如果未能解决你的问题,请参考以下文章

PostgreSQL数据库 实现ID自增

PostgreSQL数据库 实现ID自增

Postgresql json_array_elements

我应该在新应用程序中使用 Postgres 的 bigserial 记录吗?

如何让 Slick 3 生成 BIGSERIAL 而不是 GENERATED BY DEFAULT AS IDENTITY?

postgreSQL怎样创建一个序列号/自动递增的字段