基于Android SQLite的升级详解
做Android应用,不可避免的会与SQLite打交道。随着应用的不断升级,原有的数据库结构可能已经不再适应新的功能,这时候,就需要对SQLite数据库的结构进行升级了。
SQLite提供了ALTER TABLE命令,允许用户重命名或添加新的字段到已有表中,但是不能从表中删除字段。
并且只能在表的末尾添加字段,比如,为 Subscription添加两个字段:
ALTER TABLE Subscription ADD COLUMN Activation BLOB;
ALTER TABLE Subscription ADD COLUMN Key BLOB;
另外,如果遇到复杂的修改操作,比如在修改的同时,需要进行数据的转移,那么可以采取在一个事务中执行如下语句来实现修改表的需求。
1. 将表名改为临时表
ALTER TABLE Subscription RENAME TO __temp__Subscription;
2. 创建新表
CREATE TABLE Subscription (OrderId VARCHAR(32) PRIMARY KEY ,UserName VARCHAR(32) NOT NULL ,ProductId VARCHAR(16) NOT NULL);
3. 导入数据
INSERT INTO Subscription SELECT OrderId, “”, ProductId FROM __temp__Subscription;
或者
INSERT INTO Subscription() SELECT OrderId, “”, ProductId FROM __temp__Subscription;
* 注意 双引号”” 是用来补充原来不存在的数据的
4. 删除临时表
DROP TABLE __temp__Subscription;
通过以上四个步骤,就可以完成旧数据库结构向新数据库结构的迁移,并且其中还可以保证数据不会应为升级而流失。
当然,如果遇到减少字段的情况,也可以通过创建临时表的方式来实现。
转载于:https://www.cnblogs.com/chenlong-50954265/p/5848489.html
基于Android SQLite的升级详解相关推荐
- Android SQLite (三 ) 全面详解(一)
官网 SQLite是一款轻型的数据库,是关系型数据库(RDBMS)管理系统,它包含在一个相对小的C库中.目前在很多嵌入式产品中使用了它,它占用资源非常 的低,在嵌入式设备中,可能只需要几百K的内存就够 ...
- 基于Android P版本PKMS详解二
由以上代码可知,`PKMS` 扫描了很多目录,下面列举几个重点说明: ✨ /system/framework :该目录中的文件都是系统库,例如:framework.jar.services.jar.f ...
- 基于sqlite的android数据库编程,Android编程之SQLite数据库操作方法详解
Android编程之SQLite数据库操作方法详解 发布时间:2020-09-07 12:33:04 来源:脚本之家 阅读:85 作者:低调小一 本文实例讲述了Android SQLite数据库操作方 ...
- android studio gradle3.3,Android studio 3.2 升级详解及Gradle配置
Android studio 3.2 升级详解及Gradle配置 发布时间:2018-09-29 15:36, 浏览次数:618 , 标签: Android studio Gradle 一直在使用An ...
- Android面试Hash原理详解二
Hash系列目录 Android面试Hash原理详解一 Android面试Hash原理详解二 Android面试Hash常见算法 Android面试Hash算法案例 Android面试Hash原理详解 ...
- OTA升级详解(二)
青,取之于蓝,而青于蓝: 冰,水为之,而寒于水. 出自荀子<劝学篇> 本章说明 上篇 OTA升级详解(一)主要讲到OTA的一些基本知识,本篇主要内容为详解OTA升级包的制作过程 ...
- Android NFC卡实例详解
Android NFC卡实例详解 公司最近在做一个NFC卡片的工程,经过几天的时间,终于写了一个Demo出来,在此记录下在此过程中遇到的问题.由于之前本人是做iOS的,Android写起来并不是那么的 ...
- android常用技术网站收藏过的网址 给 Android 开发者的 RxJava 详解 Android设备标识-没有完美的解决方案-只有取舍 - 小彼得的专栏 - 博客频道 - CSDN.NET
收藏过的网址 http://www.jianshu.com/p/a7b36d682b6f?ref=myread Android插件化快速入门与实例解析 http://www.cnblogs.com/ ...
- Android Gradle 自定义Task 详解
转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/76408024 本文出自[赵彦军的博客] 系列目录 Android Gradle使用 ...
最新文章
- 如何用TensorFlow和TF-Slim实现图像分类与分割
- Android 实用工具Hierarchy Viewer实战
- ahk编程_AHK编程可视化的实现
- 一天搞定CSS:BFC布局与普通文档流布局比较--15
- python逻辑题_这道逻辑题 用 Python 代码 如何实现?
- php七牛分片上传_ThinkPHP实现JavaScript上传大视频到七牛云实例
- 64位系统使用Access 数据库文件的彻底解决方法
- linux 设备驱动总结,linux设备驱动归纳总结.doc
- struct、union、enum and sizeof
- leetcode @python 130. Surrounded Regions
- 详解如何提取Unity素材,源码
- kali更新sqlmap命令以及更新后无法使用的解决方法
- P1505 [国家集训队]旅游 (树链剖分)
- 【SpringMVC】编程式事务控制,基于 XML 的声明式事务控制,基于注解的声明式事务控制
- c++builder 6.0中OnCliked= fun实现的原理
- C语言零基础项目:打字母游戏!详细思路+源码分享
- 高数(下) 第八章:空间解析集合与向量代数
- c语言换零钱程序,换零钱问题。将一元钱换成1分,2分,或5分的零钱有多少换法。vb编程...
- 使用Arduino制作自动硬币分拣机
- FPGA信号处理--多相滤波器(二)
热门文章
- 保险业尚不能完全发挥CRM优势 需强化
- 当下常用的webpack版本_细说 webpack系列 1. 为什么要选择 webpack
- java 反射代价_Java反射机制
- 哇 跨行竞争 Python竟能替代PS完成海报设计
- 单片机8位抢答器实训机电报告_CD4511八路抢答器实验报告-
- cad画流程图的插件_CAD制图太慢?62款辅助插件汇总,款款精品,效率提升80%
- php去掉关联数组,php如何删除关联数组
- 二分图 ---- 树的二分图性质 2020icpc 济南 J Tree Constructer(构造)
- python搜题程序_智慧树Python程序设计基础搜题公众号
- 有关计算机辅助教学方面的问题,浅析高校计算机辅助教学应用的有关问题