當試圖創建一個具有以下語法的唯一索引:爲什麼我收到錯誤當試圖向SQLite表添加UNIQUE INDEX時,爲什麼會出現「索引列不唯一」錯誤?
CREATE UNIQUE INDEX Table_Index ON Table (CharColumn, IntColumn)
:
indexed columns are not unique
當試圖創建一個具有以下語法的唯一索引:爲什麼我收到錯誤當試圖向SQLite表添加UNIQUE INDEX時,爲什麼會出現「索引列不唯一」錯誤?
CREATE UNIQUE INDEX Table_Index ON Table (CharColumn, IntColumn)
:
indexed columns are not unique
你得到錯誤「索引列不是唯一的」因爲索引列不是唯一的,也就是說,有一些重複的記錄。
使用這樣的查詢,找出哪些記錄:
SELECT CharColumn,
IntColumn,
COUNT(*) AS Count
FROM MyTable
GROUP BY CharColumn,
IntColumn
HAVING Count > 1
如果您的表已經包含行,那麼很可能你有2個或更多的行與在表中顯示的值相同唯一索引( CharColumn,IntColumn)
eg 行CharColumn IntColumn 10 ABC 1 21 ABC 1
唯一索引意味着不超過1行應該包含值。
其他人也有同樣的問題,但他們的問題沒有得到答案:https://www.mail-archive.com/[email protected]/msg68695.html – rstackhouse
它告訴你爲什麼 - 因爲列您試圖將其變爲獨特的索引並非唯一。 – BWS
這是一個非常糟糕的錯誤消息。這實際上意味着該列有一些重複的值。 – rstackhouse