2013-03-24 79 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查询。