解决android数据库降级时,sqlite不支持drop column的问题

       由于在用户日常使用的过程中,出现过用低版本apk强制覆盖高版本apk的情况,所以最近在代码中重写了SQLiteOpenHelper类的onDowngrade方法,用来对数据库进行降级处理。但是在执行drop删除表字段语句时,会报下面的错误:


       

       drop表字段的sql语句如下所示:

db.execSQL("ALTER TABLE " + Contract.Tables.FAVORITE + " DROP COLUMN " + Contract.FavColumns.FAV_REMARK);


            后来从stack overflow上了解到:目前的sqlite还不支持drop column语法,所以只好先建一张不含drop列的临时表,存储降级后需要保留的数据,然后删除掉旧的数据表,再对临时表进行重命名操作,便实现了降级操作。

解决android数据库降级时,sqlite不支持drop column的问题_第1张图片


你可能感兴趣的:(Android)