2014-01-27 37 views
2

關於Android中SQLite的更新。當您更改數據庫的結構時,如何在不刪除數據的情況下更新數據庫?關於Android中SQLite的更新

+0

http://developer.android.com/reference/android/database/sqlite/SQLiteOpenHelper.html#onUpgrade(android.database.sqlite.SQLiteDatabase,int,int) –

回答

3

您應該覆蓋SQLiteOpenHelper中的onUpgrade方法。你應該編寫這樣的代碼。

public void onUpgrade (SQLiteDatabase db,int oldVersion,int newVersion){ 
    String update = ALTER TABLE <table_name> ADD COLUMN <column_name> <column_type>; 
    db.execSQL(update); 
} 

應該在這裏完成刪除表,添加行,插入/更新/刪除數據。

Alter表爲執行數據庫表更新提供了非常有限的選項。如果您想將數據複製到全新的結構中,則應該考慮在此升級方法中創建臨時表,您可以在其中複製數據,創建新模式,然後將數據從臨時表複製到新表中。

確保您在創建DBHelper時正確更新了您的數據庫版本號。

+1

Thanks.With你的幫助,我已經解決了這個問題通過重寫onCreate方法和onUpgrade方法來解決問題。 –

+1

不要忘記數據庫版本integer需要增加,以便onUpgrade()檢測更改。 –

+0

差點忘了,謝謝 –