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。 相反地,應該建立一個新的遷移步驟來修正錯誤並將名稱重新命名 bar 為 baz,確保已經執行過該遷移步驟且有錯誤的裝置能修正錯誤。
本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。