如何在android中创建数据库时将表添加到数据库?

时间:2016-08-17 17:08:58

标签: android android-studio sqlite android-sqlite

我创建了一个带有table的数据库。我想根据用户的命令动态地向该数据库添加更多表。

onOpen()方法没有用,因为它还会更改我以前在数据库中已存在的表。

1 个答案:

答案 0 :(得分:1)

我假设你使用的是SQLite数据库。如果是这种情况,这里存在一个可行的解决方案:

Create new table in existing DB in separate SQLiteOpenHelper class

请参阅rmkrishna在该帖子中的答案,如下:

首先检查此数据库的当前数据库版本

private final static String DATABASE_NAME = "MainDB";
private static final int DATABASE_VERSION = 1;

public BaseSQLiteOpenHelper(Context context) {
    super(context, DATABASE_NAME, null, DATABASE_VERSION);
}

并递增数据库版本(DATABASE_VERSION),并在升级和oncreate方法中添加新表查询,如下所示。

@Override
public void onCreate(SQLiteDatabase db) {
      db.execSQL("old query no need to change");
      db.execSQL("Create your new table here");
}


@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

    if (oldVersion < 2) {
       db.execSQL("Create your new table here as well this for update the old DB");
    }
}