如何实现SQLite的DBHelper升级方法

时间:2016-01-27 01:36:56

标签: android sqlite android-contentprovider

我有一个由SQLite数据库支持的Content Provider。假设我需要向数据库添加一个名为goodTimes的新列。进一步说我不能简单地做

@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int oldVersion, int newVersion) {
    sqLiteDatabase.execSQL("DROP TABLE IF EXISTS " + Dog.TABLE_NAME);
    onCreate(sqLiteDatabase);
}

因为我的用户可能正在执行任务。那么我该如何升级数据库呢?我也不能简单地实现onUpgrade,因为当我尝试查询goodTimes时,我最终会遇到SQLiteException。那么我该如何实现onUpgrade

1 个答案:

答案 0 :(得分:0)

使用ALTER表语句。

ALTER TABLE tablename ADD COLUMN column-definition

如果列尚不存在,则会添加该列。