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 的現有遷移步驟。 如果遷移步驟有錯誤且在裝置上執行,未來若修復該遷移步驟,該步驟不會自動重跑。

例如,假設遷移步驟將資料庫欄位 foo 從 重新命名為 , bar 而該欄位本應為 baz。 如果該遷移步驟在建置中釋出並在使用者裝置上執行,該欄位將被重新命名為 bar。 如果開發者之後編輯相同的遷移步驟,將名稱改成 baz 預期,已經執行過此步驟的使用者裝置仍會保留該名稱 bar。 相反地,應該建立一個新的遷移步驟來修正錯誤並將名稱重新命名 barbaz,確保已經執行過該遷移步驟且有錯誤的裝置能修正錯誤。

Java 文件 android.database.sqlite.SQLiteOpenHelper.onUpgrade(android.database.sqlite.SQLiteDatabase, int, int)

本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。

適用於