【问题标题】:Why do I get a "indexed columns are not unique" error when trying to add a UNIQUE INDEX to a SQLite Table?尝试向 SQLite 表添加 UNIQUE INDEX 时,为什么会出现“索引列不是唯一的”错误?
【发布时间】:2013-12-13 21:29:15
【问题描述】:

尝试使用以下语法创建唯一索引时:

CREATE UNIQUE INDEX Table_Index ON Table (CharColumn, IntColumn)

为什么我会收到错误:

indexed columns are not unique

【问题讨论】:

  • 其他人也有同样的问题,但他们的问题没有得到解答:mail-archive.com/sqlite-users@sqlite.org/msg68695.html
  • 它告诉您原因——因为您尝试将其制成 UNIQUE INDEX 的列不是唯一的。
  • 这是一个非常糟糕的错误信息。这确实意味着该列有一些重复的值。

标签: sqlite unique-index


【解决方案1】:

您收到错误“索引列不唯一”,因为索引列不唯一,即存在一些重复记录。

使用这样的查询来找出哪些记录:

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

【讨论】:

    【解决方案2】:

    如果您的表已经包含行,那么您可能有 2 行或更多行,它们的值与您的表唯一索引(CharColumn、IntColumn)中指示的值相同

    例如 行 CharColumn IntColumn 10 ABC 1 21 ABC 1

    唯一索引意味着不超过 1 行包含该值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-08
      • 1970-01-01
      • 1970-01-01
      • 2017-12-02
      • 2023-04-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多