仮想テーブルの作成ステートメントで「存在しない場合」を使用できないことがわかりました
CREATE VIRTUAL TABLE WORLD_LIST IF NOT EXISTS USING FTS3(_ID INTEGER PRIMARY KEY AUTOINCREMENT, WORD TEXT)
を削除するIF NOT EXISTS
と、一度だけ機能します。これに代わるものはありますか。
テーブルの存在をテストし、それに応じて分岐することができます。
SELECT DISTINCT tablename from sqlite_master where tablename = ?
テーブルは 2 回目に既に存在するため、1 回だけ機能します。名前が競合しているため、エラーが発生しています。意図したとおりに動作しています。何か違うことを期待していますか?
ステートメントを実行しないことは良い選択肢です。そのステートメントを実行するかどうかの決定をストレージ ロジックにプッシュすることはお勧めしません。
テスト中で、毎回再作成したい場合は、テーブルを削除してください。
DROP TABLE WORLD_LIST;
CREATE VIRTUAL TABLE WORLD_LIST USING FTS3...