2013-03-24 55 views
0

我有一個數據庫,用戶可以在其中更改每個元組中的幾個值。我也希望能夠添加新行並更新一些現有行的內容。我現在使用的代碼不夠好,因爲它的的onUpdate()如何更新保存用戶數據的數據庫

private static class DatabaseHelper extends SQLiteOpenHelper { 

    @Override 
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
     Log.w("dB update", "Upgrading database from version " + oldVersion + " to " + newVersion + ", which will destroy all old data"); 
     db.execSQL("DROP TABLE IF EXISTS " + MetaData.TABLE); 
     onCreate(db); 
    } 
} 

創建一個新的數據庫有沒有我的問題的解決方案?或者至少可以避免升級列,保留該列中的用戶值?在此先感謝

回答

3

在SQLite中,您可以使用ALTER表進行編輯。 (http://www.sqlite.org/lang_altertable.html

正如您在鏈接中看到的,您可以添加和重命名列。

覺得這就是你需要

+0

ALTER TABLE是非常有用的添加列,但如果我想添加什麼行和修改某些單元格的值(再次,不刪除用戶數據)? – Mangusto 2013-03-24 21:34:01

+1

如果您想要重命名或刪除列名,那麼您將不得不暫時查看錶,將其所有數據存儲到給定類型的Array對象中,刪除當前表並添加一個新列名。在適當的實施中,你不應該經常需要它。 如果您需要添加新行,只需使用正確的方法從類SQLiteDatabase插入和更新該目標。 – 2013-03-24 22:40:32

+0

感謝您的建議,我可能會使用您的建議或與多個表一起工作。 – Mangusto 2013-03-25 19:16:13

0

您可以使用觸發器和事務來執行此操作。而且你應該尋找SQL查詢。