2016-08-02 131 views
-1

我有的情況:Android SQLite數據庫更新表時更新應用程序

在較新版本的應用程序中,我將添加另一列到SQLite表。我需要在應用程序更新時使此更改生效,並且不會從數據庫中丟失數據(通過重新創建新結構)。

可能在onUpgrade中啓動我的SQL更新腳本?如何正確地做到這一點?

+3

只需使用'Alter Table' sql命令並添加新列。這對您的數據沒有影響。在onUpgrade(.....)' –

+0

我知道sql腳本,但我可以安全地在onUpgrade中執行它嗎?這是什麼標準解決方案? – Majkl

+0

你期望什麼?這是唯一的標準方式。 –

回答

2

您必須升級您的數據庫版本onCreate(),然後使用onUpgrade()。就像這樣:

public YouSQLiteHandler(Context context) { 
    super(context, Constants.DATABASE_NAME, null, Constants.DATABASE_VERSION); --> 1 to 2 for example 


} 

@Override 
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 


    addNewColumnTable(); 
} 

當你改變你的數據庫版本,Android的自動調用onUpgrade()和你的數據庫將與你把onUpgrade()當用戶更新應用這裏

更多信息的所有變化進行更新:

http://www.michenux.net/android-database-sqlite-creation-upgrade-245.html