2016-08-04 4 views
0

私はFTS4テーブルでSQLiteデータベースを使用するAndroidアプリケーションを開発しています。SQLiteテーブルがFTS4であることを確認

アプリには、外部メモリからデータベースをインポートするオプションがあります。このデータベースは、すべての正しい表と列があることを確認するためにチェックする必要があります。私はすでにそれを行うためのコードを持っていますが、テーブルが "普通"かFTS4かをチェックする方法はわかりません。これにより、後でMATCHのクエリで問題が発生します。

テーブルがFTS4であるかどうかをチェックする唯一の方法は、MATCHでランダムなクエリを実行することです。エラーが発生した場合は、そうでないためです。

これは、コマンドだけの場合と同じように行うより良い方法はありますか?

答えて

1

プレーンテーブルでMATCHを使用すると、テーブルに少なくとも1つのローがある場合にのみエラーメッセージが表示されます。

FTSテーブルには、テーブル名と同じ名前の仮想カラムがあります。したがって、SELECT MyTable FROM MyTableのようなクエリを試すことができます。

shadow tablesMyTable_content,MyTable_segdirなど)が存在するかどうかを確認できます。

システムテーブルのCREATE TABLEステートメントを確認することができます。SELECT sql FROM sqlite_master WHERE type = 'table' AND name = 'MyTable';

+0

ありがとう。私はあなたの最初の提案が好きです。 –

関連する問題