PostgreSQL表中的重复值

4

我正在尝试修改我的PostgreSQL数据库中的一个表,但是它显示有重复项!怎样才能在表中找到重复值?是否需要使用select查询?


哦,不是我给的。你必须故意恶意才能让我给一个踩。 - Ignacio Vazquez-Abrams
3个回答

14

尝试像这样:

SELECT count(column_name), column_name 
from table_name 
group by column_name having count(column_name) > 1;

它应该做什么?我得到了0行! - kevoroid
这个查询是期望的答案,我和OP有相同的问题,这个查询显示了重复的记录。删除它们允许我创建索引。 - Lennon

2
如果您尝试更改作为主键或具有唯一约束的列中的值,并在此处遇到此错误,则应该能够通过以下方式找到冲突行:
SELECT *
FROM your_table
WHERE conflicting_column = conflicting_value;

如果 conflicting_value 是字符类型,将其放在单引号(')中。
编辑:要查找受约束的列,请检查此帖子

1
我不知道冲突的值是什么!我只看到了“ERROR: duplicate key value violates unique constraint "user_audit_log_pkey"”。 - kevoroid

0
首先,确定您表中哪些字段必须是唯一的。这可能是标记为主键的内容,基于一个或多个字段的唯一索引或基于一个或多个字段的检查约束。
完成上述步骤后,查看您要插入的内容,并确定它是否违反了任何唯一规则。
此外,SELECT语句将帮助您确定问题所在。使用它们来确定是否能够提交该行。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接