Postgres,重复唯一索引

时间:2014-02-16 13:29:29

标签: postgresql unique-index

我有一个名为“hash”的唯一索引列

但是当我运行查询时:

 SELECT *
 FROM urls_0
 WHERE hash = '\x0009cb31d8a6c0c64f6877c22a781804'::bytea

有两行,由于唯一违规,我无法重新索引该索引。这里发生了什么。我正在使用PostgreSQL 9.3.2

1 个答案:

答案 0 :(得分:2)

如果使用CREATE INDEX CONCURRENTLY子句,可能会发生这种情况。

来自documentation

  

如果在扫描表时出现问题,例如唯一索引中的唯一性违规,则CREATE INDEX命令将失败但会留下“无效”索引。出于查询目的,将忽略此索引,因为它可能不完整;但它仍然会消耗更新开销。