1

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

但是,当我运行查询时:

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

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

4

1 回答 1

2

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

来自文档

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

于 2014-02-16T15:19:11.300 回答