如果您使用SQLiteOpenHelper来管理您的查询,有一个名为OnUpgrade的方法会在用户升级他的应用程序时被调用,并且应用程序的新版本的版本代码比以前的版本代码大。
使用示例:
public static void onUpgrade(SQLiteDatabase database, int oldVersion,
int newVersion) {
Log.w(TodoTable.class.getName(), "Upgrading database from version "
+ oldVersion + " to " + newVersion
+ ", which will destroy all old data");
database.execSQL("DROP TABLE IF EXISTS " + TABLE_TODO);
onCreate(database);
}
如果您不想只删除表,您可以在这里使用 oldVersion 和 newVersion 对数据库进行增量更新。您必须确保增加数据库版本号。数据库版本号作为构造函数参数传递给 SQLiteOpenHelper。
增量升级示例:
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
if (newVersion > oldVersion) {
db.beginTransaction();
boolean success = true;
for (int i = oldVersion ; i < newVersion ; ++i) {
int nextVersion = i + 1;
switch (nextVersion) {
case 2:
success = upgradeToVersion2(db);
break;
// etc. for later versions.
case 3:
success = upgradeToVersion3(db);
break;
}
if (!success) {
break;
}
}
if (success) {
db.setTransactionSuccessful();
}
db.endTransaction();
}
}