我在PostgreSQL PgAdmin 4上遇到了这个问题。我试着换了一张桌子。
ALTER TABLE mytable
ALTER COLUMN some_column type NUMERIC;
但我不断收到错误
DETAIL:密钥(id(=(3105115(重复。
但当我选择该表Select count(id) from mytable where 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;
删除这些重复项后,您的操作应该会成功。
一如既往地处理数据损坏:
导出整个集群并将其导入到一个新的集群以消除任何损坏。
检查您的硬件