2011-02-02 12 views
4

誰かがsqlite3で作成された仮想テーブルの有効期間を教えてもらえますか?私は検索機能付きのアンドロイドアプリケーションを持っており、私はsqliteの高速テキスト検索機能を使いたい。sqlite3仮想テーブルの寿命

私はこれらのテーブルがシステムにどれくらいの期間残っているのか、私がアプリケーションにアクセスするたびにテーブルを作成する必要があるのか​​分かりません。

助けが必要ですか?

答えて

5

を確認SQLiteのFTS moduleは、定義したすべての仮想テーブルにはいくつかの内部 "テーブルを作成します。これらのテーブルはデータベーススキーマで明白に表示されるため、FTS仮想テーブルとその基になるデータは完全にデータベースファイルに格納されます。

これは、他のタイプの仮想テーブルとは異なる場合があります。例えばVirtualShape拡張では、ESRIシェイプファイル(.shp)ファイルをテーブルとして読み取ることができます。それらは(自然に)SQLiteデータベースファイルとは別に保存されます。

いずれの場合でも、仮想テーブル自体の定義は、通常のテーブルのようにデータベースファイルに格納されます。あなたの質問に対する答えは:

いいえ、データベースを開くたびに再作成する必要はありません。

4

SQLite3 file format specificationによれば、仮想テーブル定義は他のテーブルと同様にスキーマテーブルに格納されます。仮想テーブルのインデックスもDBファイルに格納されます。

これはすべて、仮想テーブルがDBファイルに格納され、永続的であることを意味しています。とにかく、DB接続を開くたびにそれを再作成する必要はありません。それはそれほど意味がありません。

sqlite3のCLIツールとFTS3テーブルを使用して簡単なテストは、この:-)に