2010-01-16 95 views
3

我試圖修改我的postgresql數據庫中的表,但它說有重複!什麼是在表內查找重複值的最佳方式?有點選擇查詢?postgresql表中的重複值

+0

哦,那不是我,給了它。你必須刻意地惡意爲了讓*我*給一個downvote。 – 2010-01-16 11:52:53

回答

1

如果您嘗試在列是PRIMARY KEY的一部分,或者有UNIQUE約束更改值,並得到這個錯誤,那麼你應該能夠通過

SELECT * 
FROM your_table 
WHERE conflicting_column = conflicting_value; 

如果找到衝突行conflicting_value是一種字符類型,將其放在單引號(')中。

編輯:要找出哪些列受到約束的影響,請檢查this post

+1

我不知道conflictting_value!我只是「錯誤:重複的鍵值違反了唯一的約束」user_audit_log_pkey「 – kevoroid 2010-01-16 11:04:12

0

首先,確定表格中的哪些字段必須是唯一的。這可能被標記爲主鍵,基於一個或多個字段的唯一索引或檢查約束,同樣基於一個或多個字段。

一旦你這樣做了,看看你想要插入什麼,並找出它是否破壞了任何獨特的規則。

是的,SELECT語句將幫助您確定這裏有什麼問題。使用這些來確定您是否可以提交該行。

13

嘗試像這樣

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

它應該做什麼?我得到0行! – kevoroid 2010-01-16 10:56:05

+0

這個查詢是預期的答案,我有同樣的問題作爲OP和這個查詢顯示我的記錄是重複的。刪除它們允許我創建索引。 – Lennon 2015-12-01 14:40:16