2010-10-24 135 views
6

大家好簡單的問題,但找不到任何東西。如何檢查oracle中的所有字段是否都是唯一的?

謝謝

+1

所有欄位或全部記錄? – Quassnoi 2010-10-24 20:35:16

+0

您需要提供更多信息。最低限度是您的表的結構/定義理想地作爲CREATE TABLE語句。然後根據樣本數據得到一些樣本數據和結果。 – 2010-10-24 20:35:38

+0

表中的一列的所有字段 – Burjua 2010-10-24 20:38:55

回答

24
SELECT myColumn, COUNT(*) 
FROM myTable 
GROUP BY myColumn 
HAVING COUNT(*) > 1 

這將返回到你所有myColumn值與如果他們occurence的號碼一起其發生次數高於1次(即它們不是唯一的)。

如果此查詢的結果爲空,那麼您在此列中具有唯一值。

+0

好的,謝謝這是我需要的)))) – Burjua 2010-10-24 21:02:22

1

一種方法是創建一個唯一索引。 如果索引創建失敗,你現有的重複信息,如果插入失敗,它會產生重複...

2

一個簡單的方法是使用DBMS_STATS分析表。完成之後,您可以查看dba_tables ...查看num_rows列。看看dab_tab_columns。比較每列的num_distinct與行數。如果您擔心會影響巨大桌子上的生產系統,那麼這是一個關於如何執行您想要的任務而不執行全表掃描的方法。如果你想得到直接的結果,那麼通過用group by運行對錶的查詢來做別人的建議。

相關問題