[android]如何在缺少的数据库中向DB添加新列?

时间:2014-04-12 06:51:36

标签: android database sqlite

我在android中使用DB编写了一个应用程序。 在下一个版本中,我想向DB添加新列,但不重新安装应用程序。如何在缺少列异常时升级表?

2 个答案:

答案 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