0

仮想テーブルの作成ステートメントで「存在しない場合」を使用できないことがわかりました

CREATE VIRTUAL TABLE WORLD_LIST IF NOT EXISTS USING FTS3(_ID INTEGER PRIMARY KEY AUTOINCREMENT, WORD TEXT)

を削除するIF NOT EXISTSと、一度だけ機能します。これに代わるものはありますか。

4

2 に答える 2

1

テーブルの存在をテストし、それに応じて分岐することができます。

SELECT DISTINCT tablename from sqlite_master where tablename = ?
于 2012-06-19T19:36:08.290 に答える
1

テーブルは 2 回目に既に存在するため、1 回だけ機能します。名前が競合しているため、エラーが発生しています。意図したとおりに動作しています。何か違うことを期待していますか?

ステートメントを実行しないことは良い選択肢です。そのステートメントを実行するかどうかの決定をストレージ ロジックにプッシュすることはお勧めしません。

テスト中で、毎回再作成したい場合は、テーブルを削除してください。

DROP TABLE WORLD_LIST;
CREATE VIRTUAL TABLE WORLD_LIST USING FTS3...
于 2012-06-19T19:47:25.520 に答える