Sql 错误:无法创建唯一索引详细信息:项(id)=(3105115)重复

Sql 错误:无法创建唯一索引详细信息:项(id)=(3105115)重复,sql,postgresql,ddl,Sql,Postgresql,Ddl,我在PostgreSQL PgAdmin 4上遇到了这个问题。我试图改变一张桌子 ALTER TABLE mytable ALTER COLUMN some_column type NUMERIC; 但我总是出错 详细信息:键(id)=(3105115)重复 但是当我选择该表时,从mytable中选择count(id),其中id=3105115 我得到count=1 以前有人遇到过这个问题吗 非常感谢您的帮助。您可能遇到数据损坏 设法 REINDEX INDEX mytable_pkey;

我在PostgreSQL PgAdmin 4上遇到了这个问题。我试图改变一张桌子

ALTER TABLE mytable 
ALTER COLUMN some_column type NUMERIC;
但我总是出错

详细信息:键(id)=(3105115)重复

但是当我选择该表时,从mytable中选择count(id),其中id=3105115 我得到count=1

以前有人遇到过这个问题吗


非常感谢您的帮助。

您可能遇到数据损坏

设法

REINDEX INDEX mytable_pkey;
或者不管唯一索引叫什么。这可能会给您一个类似的错误消息

您可以通过以下方式查找具有重复项的条目:

SET enable_indexscan = off;
SET enable_bitmapscan = off;
SELECT id, count(*)
FROM mytable
GROUP BY id HAVING count(*) > 1;
删除这些重复项后,您的操作应该会成功

与数据损坏一样:

  • 导出整个集群并将其导入到新集群以消除任何损坏

  • 检查你的硬件


  • 列的原始数据类型是什么?原始数据类型是整数。