-2

fts データベース DATABASE_NAME とテーブル FTS_VIRTUAL_TABLE を作成しました。

値を挿入して選択できます。

同じデータベース DATABASE_NAME を保持する FTS_VIRTUAL_TABLE_NEW など、コード内のテーブルの名前を変更してアプリケーションを実行すると、SQLiteException エラーが発生します: No such table: FTS_VIRTUAL_TABLE_NEW. onCreate メソッドには適切な SQL ステートメントが存在するため、なぜだろうか。FTS_VIRTUAL_TABLE_NEW が作成されているはずではありませんか?

ただし、テーブルの名前だけでなくデータベースの名前 (つまり、新しいデータベース) も変更すると、すべてが機能します。アプリは正常に実行されます (もちろん、最初はデータベースに値がありません)。

同じデータベースを保持しているテーブルの名前だけを変更できない理由がわかりません。

4

1 に答える 1

0

データベース スキーマを変更する場合は、SQLiteOpenHelperコンストラクターで使用するデータベース バージョンをインクリメントし、メソッドでアップグレード (つまり、テーブルの削除と再作成または変更) を処理する必要がありますonUpgrade

于 2014-09-26T17:05:25.763 に答える