5

読んでくれてありがとう、うまくいけば答えてくれて、

従来の問題と会社のポリシーにより、私は SQLite 2.8.17 を使用しており、いくつかの varchar を主キーとして使用しています。

しかし、「pragma integrity_check」を実行すると、varchar 主キーを持つテーブルで「rowid missing from index」「wrong # of entries in index」が報告されますが、返される結果は OK です。

Extended Constant DB へのアクセスと使用 (負荷テストの約 1 日) は、DB の失敗 (整合性チェックが FAIL を返す) につながるようであり、唯一の説明 ( .explain経由) は、以前と同じエラー ( 「行 ID がインデックスにありません」および「インデックスのエントリ数が間違っています」 )。

誰でも助けることができますか?私がやっていることに何か問題がありますか?

ありがとう。

4

1 に答える 1

0

データベースをバキュームすると、少なくともこの整合性チェックの失敗なしにデータベースを再構築する必要があります。次に、あなたが言うように、1日アクセスして使用してみて、エラーがまだ存在するかどうかを確認してください.

データベースをバキュームするには、コマンド ラインにデータベースを入力して次のように入力するか、コマンド ラインをVACUUM;使用します。

sqlite2.exe mydb.db "vacuum;"

(SQLite2 では の後VACUUMにテーブル名が必要だったことを覚えているようですが、少し実験する必要があるかもしれません。それにもかかわらず、すべてのテーブルに影響します。)

于 2010-08-02T18:27:16.980 に答える