Android SQLite数据库升级

版本升级需要数据库升级时,需要保留原有版本的缓存数据;需要对数据库进行增量升级,有几种解决方案:

方案一:
先将现有数据库文件复制备份到SD卡,新建好新的数据库后,再将SD卡上的备份数据读取写入到新的数据库。处理繁琐,版本间隔大数据表结构有修改处理麻烦。

方案二:
1、 新增表,直接增加表。
2、 针对表结构有修改的数据表;先将原表oldTable修改表名称为“newTable”,新建新表,将原表中数据复制到新表中。
跟方案一类似,版本间隔多,表结构修改多时,处理繁琐麻烦。

//修改表名称
ALTER TABLE oldTable RENAME TO newTable;

//从旧表中查询出数据 并插入新表
INSERT INTO newTable SELECT culumName FROM oldTable

方案三:
一个版本一个版本升级,不是一步升级到当前的数据库版本;假设当前的版本是5,升级前的版本是2;该方式是先升级到3,在升级到4,在升级到5。
优点:只需要处理当前版本和上一个版本的升级,不需要关心其他版本数据库的修改点。
缺点:由于是一个版本一个版本往上升级,升级的版本间隔较大时, 花费的时间可能会比较多。
如下,使用switch方式,注意case间不能有break。

switch (oldVersion) {
case 2:
{
    //修改表1
    //增加表2
}
case 3:
{
    //删除表1
    //修改表2
    //增加表3
}
default:
break;
}
一些修改表的SQL语句
//新建表
CREATE TABLE IF NOT EXISTS tableName (
   columId INTEGER PRIMARY KEY AUTOINCREMENT,
   colum2 TEXT NOT NULL
)

//删除表
DROP TABLE IF EXISTS tableName

//修改表名称
ALTER TABLE oldTable RENAME TO newTable;

//增加字段
ALTER TABLE tableName ADD COLUMN newColum TEXT
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值