在更新时,表格被单独保留。我假设你已经实现了一个SQLiteOpenHelper
的子类来解释这一点。 Android能够处理版本更改的方式是在SQLiteOpenHelper
类中使用onUpgrade
。如果数据库版本比应用程序预期的版本旧,则从SQLiteOpenHelper
的构造函数调用此方法。从onUpgrade
内部您将放弃旧桌子并创建新桌子。
onUpgrade (SQLiteDatabase db, int oldVersion, int newVersion){
Log.w(TAG, "Upgrading database from version " + oldVersion + " to "
+ newVersion + ", which will destroy all old data");
//we can change this to perform different behaviors
db.execSQL("DROP TABLE IF EXISTS "+MYDB.TABLE_NAME);
onCreate(db);
}
如果您使用的是新数据库版本,请注意Android告诉您的方式,这一点非常重要。
DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
那场DATABASE_VERSION
使用,所以你应该使用一个静态最终成员INT作为您的数据库实现的一部分。
希望有帮助,如果您有任何疑问,请留下评论。