`

SQLite的升级

 
阅读更多

SQLite的升级

  做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;

  通过以上四个步骤,就可以完成旧数据库结构向新数据库结构的迁移,并且其中还可以保证数据不会应为升级而流失。

  当然,如果遇到减少字段的情况,也可以通过创建临时表的方式来实现。

分享到:
评论

相关推荐

    Sqlite升级及三种解析xml方式

    1. SQLite升级流程: - 定义数据库版本号:每个数据库都有一个隐含的`sqlite_version`系统表,我们可以自定义一个用户表来存储应用的数据库版本。 - 检查当前版本:在应用启动时,查询用户表获取当前数据库版本。 ...

    SQLite升级

    本文将深入探讨如何在APP升级过程中正确地管理和升级SQLite数据库。 首先,理解SQLite数据库的基本概念至关重要。SQLite是一个嵌入式SQL数据库引擎,它允许开发者在应用程序中直接进行数据存储,无需独立的服务器...

    SQLite数据库版本升级

    2. **SQLite升级脚本**:升级过程主要通过SQL脚本来实现,这些脚本包含了对数据库结构的修改。例如,如果需要新增一个表,脚本可能会包含`CREATE TABLE`语句;如果需要添加字段,可以使用`ALTER TABLE`命令;若要...

    android sqlite的升级demo

    本文将详细讲解如何在Android项目中进行SQLite数据库的升级,结合提供的"android sqlite的升级demo"来深入理解这一过程。 首先,我们需要明白SQLite数据库的版本管理。在Android中,每个SQLite数据库都有一个关联的...

    android sqlite数据库升级学习

    本文将深入探讨如何在Android中进行SQLite数据库的升级学习。 首先,我们需要理解Android的SQLiteOpenHelper类,它是处理SQLite数据库操作的核心。SQLiteOpenHelper提供了创建、升级和打开数据库的方法。我们通常会...

    sqlite的一些基本操作,包括数据库创建、数据库版本升级、创建表、数据的增删改查

    SQLite是一款轻量级的数据库管理系统,它被广泛应用于移动设备,尤其是Android系统中。这篇文档将详细介绍SQLite在Android环境下的基本操作,包括数据库的创建、版本管理、表的构建以及数据的操作。 一、数据库创建...

    sqlite的一些基本操作,包括数据库创建、数据库版本升级、创建表、数据的增删改查.zip

    本文将详细介绍SQLite在Android环境下的基本操作,包括数据库的创建、版本升级、表的创建以及数据的增删改查。 首先,我们来了解如何创建一个SQLite数据库。在Android中,通常通过实现SQLiteOpenHelper类的子类来...

    sqlite_fmdb操作

    6. **高低版本适配**:FMDB支持SQLite的不同版本,当SQLite升级时,FMDB会自动处理兼容性问题,开发者无需过多担忧。 在项目中使用SQLite和FMDB,可以有效地管理和存储数据。`SqliteDemo-master`这个压缩包很可能是...

    Android数据库Sqlite的基本用法及升级策略

    **Android数据库SQLite的基本用法** ...通过以上的介绍,我们可以看出SQLite在Android中的基本用法和升级策略。在实际开发中,还需要考虑数据的同步、事务处理、性能优化等问题,以实现更高效、稳定的数据库管理。

    sqlite-autoconf.tar.gz_sqlite_sqlite 加密_sqlite3autoconf_wxsqlite

    SQLite 是一个轻量级、开源的...- 考虑升级到较新的 SQLite 版本,以获得更好的安全性和性能改进,除非有特定理由保持在 3.7.13 版本。 - 对于加密功能,研究 SEE 的使用方法,确保正确配置加密选项,以保障数据安全。

    sqlite数据库升级工具

    本工具专注于SQLite数据库的升级,通过对比新旧数据库的结构差异,帮助用户高效地在旧数据库中添加新数据库中的额外字段,确保数据的兼容性和一致性。 在数据库升级过程中,以下几个关键知识点是必不可少的: 1. *...

    sqlite3 ruby安装包

    SQLite3 是一个轻量级、开源的嵌入式数据库引擎,它不需要独立的服务器进程,而是作为应用程序的一部分运行。在 Ruby 开发中,SQLite3 是一个常用的数据库选择,特别是对于小型项目、测试环境或者快速原型开发。Ruby...

    Android开发中的SQLite数据库的增删改查工具类

    在Android开发中,SQLite数据库是应用进行本地数据存储的主要方式之一。SQLite是一个轻量级的、关系型的数据库,它不需要单独的服务器进程,并且完全支持SQL标准。本篇文章将详细解析标题和描述中提到的两个关键文件...

    android sqlite数据库升级及使用loader异步加载

    本篇文章将深入探讨如何进行SQLite数据库的升级以及利用Loader实现数据的异步加载,提升用户体验。 SQLite数据库升级: 当应用更新时,可能会有数据库结构的变化,如新增表、修改字段或删除表等,这就需要对SQLite...

    SQLITE数据库 UPDATE慢

    10. **升级SQLite版本**:持续关注SQLite的新版本,新版本通常包含性能改进和bug修复,可能解决你当前的问题。 综上所述,SQLITE数据库UPDATE慢的问题可以通过多个角度来解决,包括索引优化、事务管理、查询重构、...

    sqlite3安装包 sqlite3.dll ruby sqlite3数据库组件

    当我们升级Rails到2.0.2版本时,系统会自动转向使用SQLite3作为数据库管理系统。 在这个压缩包中,有两个关键文件:sqlite3.def和sqlite3.dll。sqlite3.def文件是动态链接库(DLL)的定义文件,它包含了关于sqlite3...

    SQLite 3.8.10.2

    7. **兼容性和向后兼容性**:尽管增加了新功能,但SQLite通常会保持与旧版本的高度兼容性,使得升级过程平滑,避免了因版本升级导致的应用程序中断。 在压缩包内的文件中: - **sqlite3.c** 是SQLite的主要源代码...

    svn清理sqlite3

    本文将详细讲解如何解决“svn无法清理、上传、下载”的问题,以及涉及的SQLite3数据库相关知识。 首先,让我们理解svn的工作原理。svn在本地创建了一个仓库(repository),用于存储所有文件的版本历史。当你执行...

    Linux C语言实现在线电子词典,sqlite,升级版

    【在线词典代码】项目涉及了多个IT领域的关键知识点,主要涵盖了网络通信、TCP通信协议以及数据库的使用,特别是SQLite3数据库在C语言环境下的应用。以下是对这些核心概念的详细解析: 网络通信是计算机之间通过...

Global site tag (gtag.js) - Google Analytics