5

感谢阅读并希望回答,

由于遗留问题和公司政策,我正在使用 SQLite 2.8.17 并有一些 varchars 作为主键。

但是,当我运行“pragma integrity_check”时,它会在具有 varchar 主键的表上报告“索引中缺少 rowid”“索引中的条目数错误”,但返回的结果是正常的。

扩展常量数据库访问和使用(大约一天的负载测试)似乎导致数据库失败(完整性检查返回失败),唯一的解释(通过.explain)与之前的错误相同(“索引中缺少 rowid”“索引中的条目数错误”)。

任何人都可以帮忙吗?我做错了什么吗?

谢谢。

4

1 回答 1

0

如果你清理数据库,那么至少应该在没有完整性检查失败的情况下重新构建它。然后,如您所说,尝试一天的访问和使用,看看错误是否仍然存在。

要清理数据库,请在命令行中输入数据库并键入:VACUUM;,或使用命令行:

sqlite2.exe mydb.db "vacuum;"

(虽然我似乎记得 SQLite2 在 之后需要一个表名VACUUM,所以您可能需要进行一些试验。它仍然会影响所有表。)

于 2010-08-02T18:27:16.980 回答