SQLiteOpenHelper.OnUpgrade(SQLiteDatabase, Int32, Int32) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
データベースをアップグレードする必要があるときに呼び出されます。
[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
パラメーター
データベース。
- oldVersion
- Int32
古いデータベース バージョン。
- newVersion
- Int32
新しいデータベース バージョン。
- 属性
注釈
データベースをアップグレードする必要があるときに呼び出されます。 実装では、このメソッドを使用して、テーブルの削除、テーブルの追加、または新しいスキーマ バージョンへのアップグレードに必要なその他の操作を行う必要があります。
SQLite ALTER TABLE のドキュメント については、こちらをご覧ください。 新しい列を追加する場合は、ALTER TABLE を使用してライブ テーブルに挿入できます。 列の名前を変更または削除する場合は、ALTER TABLE を使用して古いテーブルの名前を変更し、新しいテーブルを作成し、新しいテーブルに古いテーブルの内容を設定します。
このメソッドは、トランザクション内で実行されます。 例外がスローされると、すべての変更が自動的にロールバックされます。
<em>Important:</em> 既存の移行手順を、その移行手順を含むビルドがリリースされた後にバージョン X から X+1 に変更しないでください。 移行ステップにエラーがあり、デバイス上で実行されている場合、移行ステップに修正が加えられた場合、ステップは今後それ自体を再実行しません。
たとえば、移行手順で、名前をbazする必要があるときに、データベース列の名前を foo から bar に変更するとします。 その移行手順がビルドで解放され、ユーザーのデバイス上で実行される場合、列の名前は bar に変更されます。 その後、開発者がこの同じ移行手順を編集して、意図したとおりに名前を baz に変更した場合でも、この手順を既に実行しているユーザー デバイスの名前は bar。 代わりに、エラーを修正し、 bar の名前を bazに変更する新しい移行手順を作成し、既に移行手順を実行しているデバイスでエラーが修正されていることを確認する必要があります。
このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。