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>重要:</em> 既存の移行ステップは、その移行ステップを含むビルドがリリースされた後に、バージョン X から X+1 に変更しないでください。 移行ステップにエラーがあり、デバイス上で実行されている場合、移行ステップに対して修正が行われた場合、そのステップは今後それ自体を再実行しません。
たとえば、移行手順でデータベース列の名前を から foo
に bar
変更するとします baz
。 その移行手順がビルドでリリースされ、ユーザーのデバイスで実行されている場合、列の名前は に bar
変更されます。 開発者が後でこの同じ移行手順を編集して名前を意図したとおりに変更した場合、この手順を既に baz
実行しているユーザー デバイスには という名前 bar
が付けられます。 代わりに、新しい移行手順を作成してエラーを修正し、名前を にbaz
変更bar
する必要があります。これにより、エラーが既に移行ステップを実行しているデバイスでエラーが修正されます。
このページの一部は、によって作成および共有された作業に基づく変更であり、に記載されている条件に従って使用されます。