Postgresql重复主键

时间:2016-05-16 11:48:35

标签: ruby-on-rails database postgresql ruby-on-rails-4

我正在我们的生产服务器上调用PG 9.2.14我面临一些随机问题。

假设其名为usersid的表格是其中的主键。

当我尝试重新索引表格时,它会给我以下错误: -

ERROR:  could not create unique index "users_pkey"
DETAIL:  Key (id)=(339) is duplicated.

当我尝试使用339 ID获取用户时,没有记录。我不确定它是PG的错误还是我做错了什么。

有人遇到过这样的问题吗?

2 个答案:

答案 0 :(得分:2)

检查数据库。您要添加索引的表中已存在重复值。检查表中的空值。好像在user_id中有多行占用空值。

删除重复项,您就可以添加索引。快乐编码:)

答案 1 :(得分:1)

确切的问题是有重复的行具有相同的id

我不确定它是如何进入数据库的,因为自创建表以来存在主要关键问题。

解决方案是我不得不放弃主键约束

alter table users drop constraint users_pkey;

然后使用。

拉出带有该ID的重复记录
Select * from users where id = 339;

现在它向我展示了大约4-5行具有相同ID,删除了那些行并且它有效。

我不确定列上是否有primary key constraint,如果PG没有显示重复记录,如果它在PG或功能中出现错误。