2013-12-13 23 views
1

當試圖創建一個具有以下語法的唯一索引:爲什麼我收到錯誤當試圖向SQLite表添加UNIQUE INDEX時,爲什麼會出現「索引列不唯一」錯誤?

CREATE UNIQUE INDEX Table_Index ON Table (CharColumn, IntColumn)

indexed columns are not unique

+0

其他人也有同樣的問題,但他們的問題沒有得到答案:https://www.mail-archive.com/[email protected]/msg68695.html – rstackhouse

+1

它告訴你爲什麼 - 因爲列您試圖將其變爲獨特的索引並非唯一。 – BWS

+0

這是一個非常糟糕的錯誤消息。這實際上意味着該列有一些重複的值。 – rstackhouse

回答

3

你得到錯誤「索引列不是唯一的」因爲索引列不是唯一的,也就是說,有一些重複的記錄。

使用這樣的查詢,找出哪些記錄:

SELECT CharColumn, 
     IntColumn, 
     COUNT(*) AS Count 
FROM MyTable 
GROUP BY CharColumn, 
     IntColumn 
HAVING Count > 1 
0

如果您的表已經包含行,那麼很可能你有2個或更多的行與在表中顯示的值相同唯一索引( CharColumn,IntColumn)

eg 行CharColumn IntColumn 10 ABC 1 21 ABC 1

唯一索引意味着不超過1行應該包含值。

相關問題