当递增版本号时,会为SQLite调用onUpgrade(),因此通常你会得到一个create-table SQL语句和一个alter-table SQL语句。
如果有多个版本,您是否需要声明多个alter-table语句?
答案 0 :(得分:2)
onUpgrade
为您提供旧版本和新版本,您可以做任何您需要做的事情。这是一种方法:http://blog.adamsbros.org/2012/02/28/upgrade-android-sqlite-database/
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++;
}
}
答案 1 :(得分:0)
是的,您可能需要从任何给定版本号到当前版本的升级路径。 onUpgrade()为您提供了一种方法,因为它为您提供了旧版本号,您可以使用它来确定要执行哪些迁移以获得当前版本。