【发布时间】:2016-03-13 05:25:11
【问题描述】:
当增加版本号时,会为 SQLite 调用 onUpgrade(),因此通常会有一个 create-table SQL 语句和一个 alter-table SQL 语句。
如果已经有多个版本,是否需要声明多个alter-table语句?
【问题讨论】:
标签: android sqlite android-studio
当增加版本号时,会为 SQLite 调用 onUpgrade(),因此通常会有一个 create-table SQL 语句和一个 alter-table SQL 语句。
如果已经有多个版本,是否需要声明多个alter-table语句?
【问题讨论】:
标签: android sqlite android-studio
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++;
}
}
【讨论】:
是的,您可能需要从任何给定版本号到当前版本的升级路径。 onUpgrade() 为您提供了一种方法,因为它为您提供了旧版本号,您可以使用它来确定要执行哪些迁移以升级到当前版本。
【讨论】: