SQLiteOpenHelper.OnUpgrade(SQLiteDatabase, Int32, Int32) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Wird aufgerufen, wenn die Datenbank aktualisiert werden muss.
[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
Parameter
Die Datenbank.
- oldVersion
- Int32
Die alte Datenbankversion.
- newVersion
- Int32
Die neue Datenbankversion.
- Attribute
Hinweise
Wird aufgerufen, wenn die Datenbank aktualisiert werden muss. Die Implementierung sollte diese Methode verwenden, um Tabellen abzulegen, Tabellen hinzuzufügen oder andere Aktionen auszuführen, die für das Upgrade auf die neue Schemaversion erforderlich sind.
Die SQLite ALTER TABLE-Dokumentation finden Sie hier. Wenn Sie neue Spalten hinzufügen, können Sie ALTER TABLE verwenden, um sie in eine Livetabelle einzufügen. Wenn Sie Spalten umbenennen oder entfernen, können Sie ALTER TABLE verwenden, um die alte Tabelle umzubenennen, erstellen Sie die neue Tabelle, und füllen Sie dann die neue Tabelle mit dem Inhalt der alten Tabelle auf.
Diese Methode wird innerhalb einer Transaktion ausgeführt. Wenn eine Ausnahme ausgelöst wird, werden alle Änderungen automatisch zurückgesetzt.
<em>Wichtig:</em> Sie sollten keinen vorhandenen Migrationsschritt von Version X zu X+1 ändern, nachdem ein Build veröffentlicht wurde, der diesen Migrationsschritt enthält. Wenn ein Migrationsschritt einen Fehler aufweist und er auf einem Gerät ausgeführt wird, wird der Schritt in Zukunft NICHT erneut ausgeführt, wenn ein Fix am Migrationsschritt vorgenommen wird.
Angenommen, ein Migrationsschritt benennt eine Datenbankspalte von foo zu bar dem Zeitpunkt um, an dem der Name sein bazsoll. Wenn dieser Migrationsschritt in einem Build freigegeben und auf dem Gerät eines Benutzers ausgeführt wird, wird die Spalte umbenannt in bar. Wenn der Entwickler anschließend diesen Migrationsschritt bearbeitet, um den Namen baz wie beabsichtigt zu ändern, weisen die Benutzergeräte, die diesen Schritt bereits ausgeführt haben, weiterhin den Namen barauf. Stattdessen sollte ein NEUER Migrationsschritt erstellt werden, um den Fehler zu beheben und umzubenennen barbaz, um sicherzustellen, dass der Fehler auf Geräten behoben wird, auf denen der Migrationsschritt bereits mit dem Fehler ausgeführt wurde.
Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die von der Android Open Source Project erstellt und gemeinsam verwendet und gemäß den in der 2.5 Attribution License beschriebenen Begriffen verwendet werden.