0

我在我的应用程序数据库中添加了一张表。
但是,如果我升级我的应用程序而不清除其数据,新表似乎不会自动添加。
因此,一些需要从新表中检索数据的代码会失败。

是否可以在应用升级时自动添加新表?

4

3 回答 3

0

有一个 Android 助手类可以使用应用程序的原始资产文件来管理数据库创建和版本管理。

看看这个:

https://github.com/jgilfelt/android-sqlite-asset-helper

于 2013-09-22T06:41:50.347 回答
0

是的,有一个方法 onUpgrade

如果您的版本高于之前的版本,则在此处添加代码并增加数据库版本 onUpgrade 被触发并且您的代码将执行您编写的添加表

样本

记住在超级调用中增加你的版本代码

class Database extends SQLiteOpenHelper
{
public Database(Context _myContext)
    {
    super(_myContext, DB_NAME, null, DB_VERSION_CODE);

    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
    {
        if(oldVersion > newVersion)
        {
            // create a new table what you want to create you can also check the existence of the table
        }
    }
}
于 2013-09-22T06:38:07.783 回答
0

请实现onUpgrade (SQLiteDatabase db, int oldVersion, int newVersion)方法。

于 2013-09-22T06:38:31.770 回答