1

テーブルを 1 つだけ含む .sqlite データベースがあります。そのテーブルには 3 つの列が含まれており、1 つの列のみにインデックスを付けることに関心があります。

問題は、インデックス作成を実行すると、空のインデックス テーブルが作成されることです。

SQLite ManagerFirefox のアドオンを使用しています。これは、インデックス作成を確認する前に表示される構文です。

CREATE  INDEX "main"."tableIndex" ON "table" ("column1" ASC)

ここで何が問題なのかわかりません。このツールをずっと前に別のデータベースで試してみましたが、うまくいきました。

なにか提案を ?

4

2 に答える 2

3

データベース インデックスの内容を「見る」ことはできません。インデックスに対応するテーブルまたはテーブルのような構造は作成されません。したがって、空である可能性があるものは何もありません。

CREATE INDEX コマンドがエラーなしで実行された場合、インデックスが作成され、データの追加、削除、および更新時に SQLite によって引き続き維持されることを確信できます。

以下のコメントによると、@iturki は実際に全文検索のインデックスを作成しようとしています。SQLite は全文検索用にいくつかの拡張機能をサポートしていますが、それらは標準の CREATE INDEX コマンドでは実装されていません。このリファレンスを参照してください。

于 2011-11-15T20:24:20.747 に答える
1

VACUUMクエリを使用してみてください。sqlite データベース ファイルを完全に再構築し、すべてのインデックスを再構築し、すべての ROWID などをリセットします。

于 2011-11-15T20:46:29.183 に答える