转载自:http://www.cnblogs.com/wisekingokok/archive/2012/01/10/2318353.html
做Android应用,不可避免的会与SQLite打交道。随着应用的不断升级,原有的数据库结构可能已经不再适应新的功能,这时候,就需要对SQLite数据库的结构进行升级了。
SQLite提供了ALTER TABLE命令,允许用户重命名或添加新的字段到已有表中,但是不能从表中删除字段。
并且只能在表的末尾添加字段,比如,为 Subscription添加两个字段:
1
ALTER TABLE Subscription ADD COLUMN Activation BLOB;
2
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;
通过以上四个步骤,就可以完成旧数据库结构向新数据库结构的迁移,并且其中还可以保证数据不会应为升级而流失。
当然,如果遇到减少字段的情况,也可以通过创建临时表的方式来实现。
分享到:
相关推荐
1. SQLite升级流程: - 定义数据库版本号:每个数据库都有一个隐含的`sqlite_version`系统表,我们可以自定义一个用户表来存储应用的数据库版本。 - 检查当前版本:在应用启动时,查询用户表获取当前数据库版本。 ...
本文将深入探讨如何在APP升级过程中正确地管理和升级SQLite数据库。 首先,理解SQLite数据库的基本概念至关重要。SQLite是一个嵌入式SQL数据库引擎,它允许开发者在应用程序中直接进行数据存储,无需独立的服务器...
2. **SQLite升级脚本**:升级过程主要通过SQL脚本来实现,这些脚本包含了对数据库结构的修改。例如,如果需要新增一个表,脚本可能会包含`CREATE TABLE`语句;如果需要添加字段,可以使用`ALTER TABLE`命令;若要...
本文将详细讲解如何在Android项目中进行SQLite数据库的升级,结合提供的"android sqlite的升级demo"来深入理解这一过程。 首先,我们需要明白SQLite数据库的版本管理。在Android中,每个SQLite数据库都有一个关联的...
本文将深入探讨如何在Android中进行SQLite数据库的升级学习。 首先,我们需要理解Android的SQLiteOpenHelper类,它是处理SQLite数据库操作的核心。SQLiteOpenHelper提供了创建、升级和打开数据库的方法。我们通常会...
SQLite是一款轻量级的数据库管理系统,它被广泛应用于移动设备,尤其是Android系统中。这篇文档将详细介绍SQLite在Android环境下的基本操作,包括数据库的创建、版本管理、表的构建以及数据的操作。 一、数据库创建...
本文将详细介绍SQLite在Android环境下的基本操作,包括数据库的创建、版本升级、表的创建以及数据的增删改查。 首先,我们来了解如何创建一个SQLite数据库。在Android中,通常通过实现SQLiteOpenHelper类的子类来...
6. **高低版本适配**:FMDB支持SQLite的不同版本,当SQLite升级时,FMDB会自动处理兼容性问题,开发者无需过多担忧。 在项目中使用SQLite和FMDB,可以有效地管理和存储数据。`SqliteDemo-master`这个压缩包很可能是...
**Android数据库SQLite的基本用法** ...通过以上的介绍,我们可以看出SQLite在Android中的基本用法和升级策略。在实际开发中,还需要考虑数据的同步、事务处理、性能优化等问题,以实现更高效、稳定的数据库管理。
SQLite 是一个轻量级、开源的...- 考虑升级到较新的 SQLite 版本,以获得更好的安全性和性能改进,除非有特定理由保持在 3.7.13 版本。 - 对于加密功能,研究 SEE 的使用方法,确保正确配置加密选项,以保障数据安全。
本工具专注于SQLite数据库的升级,通过对比新旧数据库的结构差异,帮助用户高效地在旧数据库中添加新数据库中的额外字段,确保数据的兼容性和一致性。 在数据库升级过程中,以下几个关键知识点是必不可少的: 1. *...
SQLite3 是一个轻量级、开源的嵌入式数据库引擎,它不需要独立的服务器进程,而是作为应用程序的一部分运行。在 Ruby 开发中,SQLite3 是一个常用的数据库选择,特别是对于小型项目、测试环境或者快速原型开发。Ruby...
在Android开发中,SQLite数据库是应用进行本地数据存储的主要方式之一。SQLite是一个轻量级的、关系型的数据库,它不需要单独的服务器进程,并且完全支持SQL标准。本篇文章将详细解析标题和描述中提到的两个关键文件...
本篇文章将深入探讨如何进行SQLite数据库的升级以及利用Loader实现数据的异步加载,提升用户体验。 SQLite数据库升级: 当应用更新时,可能会有数据库结构的变化,如新增表、修改字段或删除表等,这就需要对SQLite...
10. **升级SQLite版本**:持续关注SQLite的新版本,新版本通常包含性能改进和bug修复,可能解决你当前的问题。 综上所述,SQLITE数据库UPDATE慢的问题可以通过多个角度来解决,包括索引优化、事务管理、查询重构、...
7. **兼容性和向后兼容性**:尽管增加了新功能,但SQLite通常会保持与旧版本的高度兼容性,使得升级过程平滑,避免了因版本升级导致的应用程序中断。 在压缩包内的文件中: - **sqlite3.c** 是SQLite的主要源代码...
本文将详细讲解如何解决“svn无法清理、上传、下载”的问题,以及涉及的SQLite3数据库相关知识。 首先,让我们理解svn的工作原理。svn在本地创建了一个仓库(repository),用于存储所有文件的版本历史。当你执行...
【在线词典代码】项目涉及了多个IT领域的关键知识点,主要涵盖了网络通信、TCP通信协议以及数据库的使用,特别是SQLite3数据库在C语言环境下的应用。以下是对这些核心概念的详细解析: 网络通信是计算机之间通过...
此外,可以对已有数据库进行升级和降级,以适应不同版本的SQLite。 3. **表管理**:允许创建、修改和删除表格,以及导入和导出表格数据。对于复杂的数据结构,SQLiteManager提供了方便的字段定义功能。 4. **数据...