Android SQLite 升級數據庫,在原有數據庫的基礎上添加一列

原本以爲很簡單的問題,直接在原來創建數據庫的語句中加上需要添加的列new_column,但是運行時發現,應用crash。原因是,原有數據庫文件已經存在的情況下並不會重新創建數據庫,也就是說此時數據庫中並沒有new_column列,這個時候,運行query()來查詢數據庫如果包括new_column列,就會導致應用crash。
其實,SQLite提供了數據庫升級的方法 onUpgrade(),只需要在創建SQLiteOpenHelper對象時,傳人比原版本號更大的版本號,便會觸發該方法,在這個方法中可以實現遷移原有數據及創建新數據庫Table。
在某些情況下,數據庫版本會出現降低的情況:如用戶安裝了版本更低的應用,但是應用數據沒有改變。這種情況下,如果設計數據庫時沒有override onDowngrade()方法,會導致應用崩潰。所以,在設計數據庫時,最好能override onDowngrade()方法,防止這種情況下應用崩潰的發生
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章