SQLiteOpenHelperの場合、onCreate
の中に新しいテーブルを追加すると、onUpgrade
の中に何かする必要がありますか?私は全く新しいテーブルを追加しています。私はバージョン番号を変更する必要があると信じますが、onUpgrade
は空のままにしておきます。あれは正しいですか?sqliteに新しいテーブルを追加する
答えて
既存のアプリケーションのインストールでこの新しいテーブルを追加する場合は、バージョンを増やして、適切なonUpgrade()
実装を提供するとともに、テーブルをonCreate()
に追加する必要があります。 。
空のonUpgrade()
の実装では不十分です。それは実際に何かをしなければならない。一部の人はすべてのテーブルを削除し、onCreate()
を直接呼び出すだけですが、既存のデータを保持しようとすると明らかにうまく機能しません。私は通常、ユーザーが1つ以上のバージョン(たとえば、バージョン3を公開し、ユーザーはまだバージョン1になっている)の場合、必要なすべてのアップグレードを順番に実行します。
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
switch (oldVersion) {
case 1:
db.execSQL("CREATE TABLE " + ...);
// no break statement, so case 2 will execute after this.
case 2:
// more execSQL(), etc
}
}
あなただけが開発しているので(まだ他の誰もまだアプリケーションを持っていないので)、アップグレードをスキップして 'onCreate()'を実行するだけで、データベースを削除して再作成する必要があることに注意してください。これを行うには、アンインストールして再インストールするか、[設定]> [アプリ]でアプリを見つけてそこのデータを消去します。 – Karakuri
onUpgradeは、バージョン番号を増やす場合にのみ呼び出されます。
これを実装するには、変更したテーブルを再作成し、既存のデータをコピーする必要があります。このトピックに関する多くのチュートリアルがあります。
まだ学習していない場合は実装する必要はありませんが、そうしないとスキーマを変更すると、デバイスからアプリをアンインストールする必要があります。変更しないと、変更は適用されません。
onCreate()
は、既にユーザーが既にアプリをインストールしている場合は呼び出されません。したがって、onUpgrade()
に新しいテーブルを作成する必要があります。データベースのバージョン番号を増やしてください。
両方のコールバックメソッドからコールできるように、ヘルパーメソッドでテーブルを作成するコードを作成することをお勧めします。これにより、テーブルを作成するコードを変更する必要が生じた場合にエラーが発生する可能性が減ります。
良い点。ありがとう。 +1 –
- 1. sqliteデータベーステーブルに新しいエントリを追加
- 2. railsテーブルに新しい行を追加
- 3. 新しいデータを追加する前にSQLiteテーブルからすべてのエントリをクリアするには?
- 4. trの新しい行に新しいテーブルを追加するには?
- 5. sqliteでデータベースのバージョンをアップグレードする方法とすぐにテーブルの新しい列を追加する
- 6. SQLiteにSQLiteを追加する.dump
- 7. Postgresqlテーブルに新しい列(Pythonリスト)を追加するには?
- 8. nopcommerceに新しいテーブルを追加するには?
- 9. SQLite - 新しいitensを結果に追加
- 10. 新しい行に行かずにsqlite 3のテーブルにデータを追加する方法
- 11. AndroidのSQLiteテーブルにカラムを追加しますか?
- 12. sqliteのデータベースに2番目のテーブルを追加するには?
- 13. 既存のテーブルに新しい行を追加する
- 14. ItextSharp PdfStamperの新しいページにテーブルを追加する方法
- 15. 既存のDynamoDBテーブルに新しいローカルセカンダリインデックスを追加する
- 16. Djangoアプリケーションでデータベースに新しいテーブルを追加する方法
- 17. magentoデータベースに新しいテーブルを追加する方法
- 18. テーブルに新しい行を追加する
- 19. データベースVisual Studioに新しいテーブルを追加するASP MVC - コードファースト
- 20. MYSQLテーブルに新しい列を追加する方法
- 21. 新しいGoogleスプレッドシートのデータをBigQueryテーブルに追加する
- 22. Entity Framework v6.13 - テーブルに新しい列を追加する
- 23. 新しい列を追加した後にテーブルの各行を更新する
- 24. AndroidのSQLiteデータベースに2つの新しい列を追加するには?
- 25. 既存のSQLiteデータベースにテーブルを追加する
- 26. MySQLテーブルにテーブルを追加する追加のカラムを追加しました
- 27. 新しいコントロールを追加した後に新しい行を追加する
- 28. NodeJSを使用してhtmlテーブルに新しい行を追加
- 29. sqliteのテーブルを更新するには?
- 30. コンテキストで新しいテーブルを追加する方法ASP.NET MVC
あなたはすでにあなたのアプリの以前のバージョンをリリースしましたか? –
はい、あります:)。 –