Raj*_*ram 21 sqlite android android-contentprovider android-sqlite
我开发了一个Android应用程序并发布了1.0版本.该应用程序包含带有5个表的SQLite本地数据库.
现在我们计划发布2.0版本,同时更新1.0版用户.在2.0版本中,我们已经包含了前面5个表的额外两个表,现在有7个表.
现在我的问题是,版本1.0的用户都在本地数据库中有一些数据,如果他更新到版本2.0,以前的数据会丢失吗?如果是这样的话.那么替代方法是什么?
小智 22
您应该在onUpgrade方法中放置所有更改,您可以使用此代码:
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
String sql = "ALTER TABLE " + TABLE_SECRET + " ADD COLUMN " +
"name_of_column_to_be_added" + " INTEGER";
db.execSQL(sql);
}
Run Code Online (Sandbox Code Playgroud)
这会在当前数据库中添加一列.您的数据库不会丢失数据.提醒:执行getWriteableDatabase或getReadableDatabase时将调用onUpgrade,并且数据库的版本与旧版本不同.
归档时间: |
|
查看次数: |
15192 次 |
最近记录: |