如果使用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();
}
}