我有一个由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
?
答案 0 :(得分:0)
使用ALTER表语句。
ALTER TABLE tablename ADD COLUMN column-definition
如果列尚不存在,则会添加该列。