gpt4 book ai didi

postgresql - 如何重建损坏的 postgres 主键索引

转载 作者:行者123 更新时间:2023-11-29 11:45:36 27 4
gpt4 key购买 nike

我有一张表,其中有一行无法通过 id 找到。如果我绕过 PK 索引,就会找到该行。如果我删除索引,就会找到该行。如果我添加新索引,则找不到行。

d5toqvrtbm8bbu=> SELECT id, created_at FROM widgets WHERE id = 1155301;
id | created_at
---------+----------------------------
1155301 | 2014-01-10 02:59:47.856214
(1 row)

d5toqvrtbm8bbu=> CREATE UNIQUE INDEX widgets_pkey ON widgets(id);
CREATE INDEX
d5toqvrtbm8bbu=> SELECT id, created_at FROM widgets WHERE id = 1155301;
id | created_at
----+------------
(0 rows)

d5toqvrtbm8bbu=> SELECT id, created_at FROM widgets WHERE id - 1 + 1 = 1155301;
id | created_at
---------+----------------------------
1155301 | 2014-01-10 02:59:47.856214
(1 row)

d5toqvrtbm8bbu=> DROP INDEX widgets_pkey;
DROP INDEX
d5toqvrtbm8bbu=> SELECT id, created_at FROM widgets WHERE id = 1155301;
id | created_at
---------+----------------------------
1155301 | 2014-01-10 02:59:47.856214
(1 row)

d5toqvrtbm8bbu=> CREATE UNIQUE INDEX widgets_pkey ON widgets(id);
CREATE INDEX
d5toqvrtbm8bbu=> SELECT id, created_at FROM widgets WHERE id = 1155301;
id | created_at
----+------------
(0 rows)

这是在 postgres 9.3 上

有什么建议吗?

最佳答案

我的数据库也有类似的问题。我尝试了 REINDEX,但没有帮助。

VACUUM FULL widgets;

虽然完全解决了问题。

关于postgresql - 如何重建损坏的 postgres 主键索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21143440/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com