下载Android应用程序更新时是否可以更新SQLite DB的某些选定表?

时间:2015-01-23 05:41:28

标签: android sqlite android-sqlite

我正在使用一个使用SQLite数据库存储数据的Android应用程序。我有"喜欢"数据库中的表,用于存储特定用户的喜欢的项目。

问题是当用户获得此应用程序的更新,然后我想更新数据库,除了"收藏夹"表,因为它将包含用户特定的收藏项。

修改

现在我知道我可以更新onUpgrade()数据库SQLite事件中某些表的记录,但我真的不知道如何在应用程序中管理两个数据库?我在Google上搜索过但没有想到这么做,有很多例子可以将数据从资产文件夹复制到新数据库。

我必须从"现有数据库"中的表中选择所有记录。并复制到"新数据库"的表格。表名可能与两个数据库相同。

2 个答案:

答案 0 :(得分:2)

更新Android应用和数据库有两个方面:
1)如果您只是升级您的应用并不要更改您的DATABASE_VERSION(当您从{{实现类后代的构造函数时,最后一个参数1}}) - 旧数据库保留,您可以使用它而无需任何其他操作

2)如果更改您的SQLiteOpenHelper - 在DATABASE_VERSION的实施中,方法SQLiteOpenHelper可能如下所示:< / p>

onUpgrade()

因此,您是否可以放桌或进一步使用它 更多 - 您可以决定如何处理@Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { // RUN YOUR SQL SCRIPTS: db.execSQL(DBContract.Table1.SQL_DROP_TABLE); ... // JUST DON'T DROP YOU FAVORITE TABLE HERE // if required call onCreate(): onCreate(db); } oldVersion的价值

修改 如果(根据您的评论)您想要在数据库之间移动数据,您可以查看this post

答案 1 :(得分:0)

如果您已将数据库复制到应用数据或SD卡中,即使在更新数据后它仍将保留。***如果用户未从应用设置中手动清除数据

  • 如果通过创建API从互联网下载数据没有问题 下载数据并更新所需表格中的数据
  • 其他如果您不想使用上面的...而不是创建数据文件 对于要更新的​​每个表,请将其保存在assets文件夹中 当用户第一次启动应用程序时更新应用程序后,您可以更新 除了fav表格以外的数据。表格明智的json文件,包含您要更新的新数据。

希望我理解你的问题。如果不是分享它会尝试