6

データを失うことなく、既存の DB にテーブルを追加したいと考えています。そのため、テーブルを削除して新しく作成することはできません。それを行う最善の方法は何ですか?

4

5 に答える 5

5

はるかに簡単なようです。SQLiteOpenHelper を使用します。そのため、DB が既に存在する場合、onCreate() は呼び出されません。バージョン番号が上がると、 onUpdate() が呼び出されます。onUpdate() で、「存在しない場合はテーブルを作成する」で新しいテーブルを追加しました。SQLITE.ORG のドキュメントから: ただし、「IF NOT EXISTS」句が CREATE TABLE ステートメントの一部として指定され、同じ名前のテーブルまたはビューが既に存在する場合、CREATE TABLE コマンドは単に効果がありません (そしてエラーメッセージが返されます)。これでテーブルが作成され、問題ありません。

于 2012-07-05T22:09:03.993 に答える
3

私が行った方法は、別のデータベースを作成し、現在のデータベースから一時的な新しいデータベースにすべてをコピーしてから、古いデータベースを削除して、一時データベースから情報をコピーすることです。

それを行う別の方法があるかどうかはわかりませんが、もしあればそれについて聞いてみたいです

于 2012-07-05T20:15:39.053 に答える
0

SQLiteOpenHelperを拡張するクラスを作成し、onOpen(SQLiteDatabase db)をオーバーライドし、テーブル作成クエリを使用して文字列を作成してから、db.execSQL(String str);を使用します。

于 2012-07-05T20:18:50.693 に答える