SQLite如何实现DBHelper升级方法

How to implement DBHelper upgrade method for SQLite

我有一个由 SQLite 数据库支持的内容提供程序。假设我需要向数据库中添加一个名为 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?

使用 ALTER table 语句。

ALTER TABLE tablename ADD COLUMN column-definition

如果列不存在,这将添加该列。