我有一张表,该表中只有一行不能通过均等查询来查询,但可以按like(不是incloud%)查询。
postgresql服务器版本:90513
# select id,external_id,username,external_id from users where username = 'oFIC94vdidrrKHpi5lc1_2Ibv-OA';
id | external_id | username | external_id
----+-------------+----------+-------------
(0 rows)
# select id,external_id,username,external_id from users where username like 'oFIC94vdidrrKHpi5lc1_2Ibv-OA';
id | external_id | username | external_id
--------------------------------------+------------------------------+------------------------------+------------------------------
61ebea19-74f5-4713-9a30-63eb5af8ac8f | oFIC94vdidrrKHpi5lc1_2Ibv-OA | oFIC94vdidrrKHpi5lc1_2Ibv-OA | oFIC94vdidrrKHpi5lc1_2Ibv-OA
(1 row)
如果我转储该表并将其还原,它将得到修复。为什么。
这是一个Postgresql错误?我该如何解决。我见过两次。
答案 0 :(得分:2)
此表上有索引吗?如果是,则这看起来像是损坏的索引-PostgreSQL在第一种情况下使用索引,如果索引损坏,则可能不会返回任何结果。
这通常是一个错误,可能是软件错误,也可能是硬件错误(电源丢失或任何内存问题导致数据丢失)。尝试删除并重新创建索引,或使用https://www.postgresql.org/docs/9.3/sql-reindex.html
重建索引