假如我们已经创建好了一个数据库,随着功能需求的增加,想在数据库中再添加一个表,如果直接在之前的代码中插入一个表,会发现创建表失败,这是因为该数据库已经存在。该如何解决呢?
1、卸载程序,重新编译安装。
这是一个最简单直接的方法,但是只是为了多一个表就如此“暴力”,显得十分极端,也不恰当。
2、升级数据库
修改代码
public class MyDatabaseHelper extends SQLiteOpenHelper {
……
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("drop table if exists User");
db.execSQL("drop table if exists Category");
onCreate(db);
}
}
在Upgrade()方法中新增了drop语句,如果该表已经存在,则先删除该表再重新创建,如果该表不存在则直接创建
在MainActivity中只需要传入一个比之前的版本号更大的数字进去就可以了