我发布了一个Android应用程序,其中包含 versionCode = 1和DATABASE VERSION = 1 的本地 Sqlite 数据库,其中有两个表格,假设 TABLE1 和 TABLE2 即可。
如果我想再添加一个表 TABLE3 ,那么我将在 onUpgrade()方法中编写表创建代码,并将发布我的App
使用 versionCode = 2和DATABASE VERSION = 2 ,用户将从Play商店获取更新。
如果我想为 versionCode = 3和DATABASE VERSION = 3 添加 TABLE4 ,我sholuld在onUpgrade()方法中编写代码但是我应该删除表创建代码
对于 TABLE3 ,如果没有,它会给出
表已存在错误
TABLE3 当用户将应用更新为版本= 3 时?
答案 0 :(得分:0)
onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
方法提供旧版本号,因此您只需检查它是哪个版本。例如,如果oldVersion
等于1,则还必须添加TABLE3和TABLE4,但如果它等于2,则只需要TABLE4。管理它的最简单方法可能是这样的:
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int oldVersion, int newVersion) {
if (oldVersion < 2) {
// create TABLE3
}
if (oldVersion < 3) {
// create TABLE4
}
}
TL; DR:你不应该删除TABLE3创建部分,因为如果用户没有在版本1和3之间安装升级,他/她就不会添加该表,你的应用可能会在某些时候崩溃。
答案 1 :(得分:0)
onUpgrade()
应该将数据库从任何版本升级到当前版本。您还应该修改onCreate()
以创建当前版本中所需的所有表。