我在android中使用DB编写了一个应用程序。 在下一个版本中,我想向DB添加新列,但不重新安装应用程序。如何在缺少列异常时升级表?
答案 0 :(得分:1)
使用SQLiteOpenHelper可以轻松完成。假设您当前的数据库版本是1.您只需将其更改为2.然后,如果有任何版本1数据库将自动更新到版本2并且将调用onUpgrade方法。
private static final String DATABASE_NAME = "data";
private static final String DATABASE_TABLE = "notes";
private static final int DATABASE_VERSION = 2;
private static class DatabaseHelper extends SQLiteOpenHelper {
DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(DATABASE_CREATE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
if(oldVersion <= 1)
db.execSQL("Do you table alter here ");
onCreate(db);
}
}
答案 1 :(得分:1)
您只需更改(增加)数据库版本
即可public class Databas extends SQLiteOpenHelper {
private static final int DATABASE_VERSION = 2;
Database(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
if(oldVersion <= DATABASE_VERSION)
db.execSQL("//write table altering query here ");
onCreate(db);
}
从当前数据库版本值
增加数据库版本值1