SQLiteOpenHelper.OnUpgrade(SQLiteDatabase, Int32, Int32) メソッド

定義

データベースをアップグレードする必要がある場合に呼び出されます。

[Android.Runtime.Register("onUpgrade", "(Landroid/database/sqlite/SQLiteDatabase;II)V", "GetOnUpgrade_Landroid_database_sqlite_SQLiteDatabase_IIHandler")]
public abstract void OnUpgrade (Android.Database.Sqlite.SQLiteDatabase? db, int oldVersion, int newVersion);
[<Android.Runtime.Register("onUpgrade", "(Landroid/database/sqlite/SQLiteDatabase;II)V", "GetOnUpgrade_Landroid_database_sqlite_SQLiteDatabase_IIHandler")>]
abstract member OnUpgrade : Android.Database.Sqlite.SQLiteDatabase * int * int -> unit

パラメーター

db
SQLiteDatabase

データベースです。

oldVersion
Int32

古いデータベース バージョン。

newVersion
Int32

新しいデータベース バージョン。

属性

注釈

データベースをアップグレードする必要がある場合に呼び出されます。 実装では、このメソッドを使用して、テーブルの削除、テーブルの追加、または新しいスキーマ バージョンへのアップグレードに必要なその他の操作を行う必要があります。

SQLite ALTER TABLE のドキュメント については、こちらを参照してください。 新しい列を追加する場合は、ALTER TABLE を使用してライブ テーブルに挿入できます。 列の名前を変更または削除する場合は、ALTER TABLE を使用して古いテーブルの名前を変更してから、新しいテーブルを作成し、新しいテーブルに古いテーブルの内容を設定します。

このメソッドは、トランザクション内で実行されます。 例外がスローされた場合、すべての変更が自動的にロールバックされます。

<em>重要:</em> 既存の移行ステップは、その移行ステップを含むビルドがリリースされた後に、バージョン X から X+1 に変更しないでください。 移行ステップにエラーがあり、デバイス上で実行されている場合、移行ステップに対して修正が行われた場合、そのステップは今後それ自体を再実行しません。

たとえば、移行手順でデータベース列の名前を から foobar 変更するとします baz。 その移行手順がビルドでリリースされ、ユーザーのデバイスで実行されている場合、列の名前は に bar変更されます。 開発者が後でこの同じ移行手順を編集して名前を意図したとおりに変更した場合、この手順を既に baz 実行しているユーザー デバイスには という名前 barが付けられます。 代わりに、新しい移行手順を作成してエラーを修正し、名前を にbaz変更barする必要があります。これにより、エラーが既に移行ステップを実行しているデバイスでエラーが修正されます。

android.database.sqlite.SQLiteOpenHelper.onUpgrade(android.database.sqlite.SQLiteDatabase, int, int)Java ドキュメント。

このページの一部は、によって作成および共有された作業に基づく変更であり、に記載されている条件に従って使用されます。

適用対象