我在Play商店部署了一个应用程序。我使用SQLite数据库。 Play商店中的应用程序有db版本3.现在对于即将发布的更新,我想在数据库中向表中添加另一列,所以我要将db版本增加到4.我在onUpgrade中创建了这个逻辑( ) 方法。我只是想知道你是如何找到它的,你是如何解决这种情况的,甚至是像db版本5那样的进一步更新。我只想得到你的意见。非常感谢。
public static final String PARAM_NAME = "java.lang.String";
答案 0 :(得分:3)
我更喜欢这种方式,因为它简洁明了:
public void onUpgrade(final SQLiteDatabase db, int oldVersion, int newVersion) {
if (oldVersion < 2){
// Upgrade from V1 to V2
}
if (oldVersion < 3){
// Upgrade from V2 to V3
}
if (oldVersion < 4){
// Upgrade from V3 to V4
}
}
使用此功能,数据库将逐步升级。
答案 1 :(得分:1)
更改db版本和检查列存在于onUpgrade
中的表中
public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {
Cursor cursor = arg0.rawQuery("select * from TABLE_NAME", null);
int newcolumn = cursor.getColumnIndex("NEWLY_ADDED_COLUMN_NAME");
if (newcolumn == -1) {
arg0.execSQL("ALTER TABLE TABLE_NAME ADD COLUMN NEWLY_ADDED_COLUMN_NAMEtext");
}
}
答案 2 :(得分:0)
这是一个很好的方法。
public void onUpgrade(final SQLiteDatabase db, final int oldVersion, final int newVersion)
{
int upgradeTo = oldVersion + 1;
while (upgradeTo <= newVersion)
{
switch (upgradeTo)
{
case 5:
db.execSQL(SQLiteSet.V5_ADD_LAST_CARD);
db.execSQL(SQLiteCard.V5_ADD_FAILED);
break;
case 6:
db.execSQL(SQLiteSet.V6_ADD_IMPORT_TYPE);
break;
case 7:
db.execSQL(SQLiteSet.V7_ADD_SHORT_FNAME);
break;
}
upgradeTo++;
}
}