解决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列的临时表,存储降级后需要保留的数据,然后删除掉旧的数据表,再对临时表进行重命名操作,便实现了降级操作。



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值