android sqlit数据库升级,添加字段

看了网上的许多关于数据库升级,字段属性的增加方面的资料,了解到:

其实数据库升级有俩个靠谱的方法,(1)

 db.execSQL("ALTER TABLE test ADD COLUMN age");
  (2)
 db.beginTransaction();
	            db.execSQL("ALTER TABLE test RENAME TO _Test");
	            db.execSQL("CREATE TABLE test(id integer primary key autoincrement , PassWord VARCHAR(20) NOT NULL,"
	                    + " UserName VARCHAR(32) NOT NULL , Age VARCHAR(16) NOT NULL)");
	            db.execSQL("INSERT INTO test SELECT id, " + str + str
	                    + ", name, age FROM _Test");
	            db.setTransactionSuccessful();
	            db.endTransaction();

因为android中自带的数据库是通过一个SqliteOpenHelper 类来进行使用的,在第一次调用的时候执行onCreate(),在其中进行数据库表的创建
  当数据库当前版本小于新数据库版本的时候会调用public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {}
在这里边可以进行数据库的升级。
  方法一就是通过给表增加一个新的字段;
  方法二就是通过修改当前数据库表的名称,作为临时表,在创建一张数据库表来插入临时表中的数据,这样就实现了数据的升级。
下载Demo:
点击打开链接
时间: 2024-11-06 03:53:01

android sqlit数据库升级,添加字段的相关文章

android sqlite数据库升级

public class DataHelper extends SQLiteOpenHelper{ private static final int version=1; public DataHelper(Context context, String name, CursorFactory factory, int version) { super(context, name, factory, version);//version代表数据库版本号码 // TODO Auto-generat

Android中数据库升级onUpgrade方法说明

Andoird的SQLiteOpenHelper类中有一个onUpgrade方法.帮助文档中只是说当数据库升级时该方法被触发.经过实践,解决了我一连串的疑问: 1. 帮助文档里说的“数据库升级”是指什么? 你开发了一个程序,当前是1.0版本.该程序用到了数据库.到1.1版本时,你在数据库的某个表中增加了一个字段.那么软件1.0版本用的数据库在软件1.1版本就要被升级了. 2. 数据库升级应该注意什么? 软件的1.0版本升级到1.1版本时,老的数据不能丢.那么在1.1版本的程序中就要有地方能够检测

安卓应用版本升级时sqlit数据库升级

在应用版本升级的时候做了一些sqlit的操作,比如增加了一个字段,那么版本升级之后sqlit不更新必然会报错 那么sqlit提供了ALERT TABLE命令,允许用户重命名或添加字段到表中 具体解决方案(以表增加字段为例): 1.将表名A改为临时表temp_A:   2.创建与原先表明相同的新表A(此时新表里面的字段已经增加)   3.将temp_A中数据导入到新表A中用""来补充原先不存在的字段   4.删除temp_A表   参考:<a target=_blank href=

ruby数据库表添加字段、修改字段类型、修改字段名称

Rails 手册 3.8 使用 change 方法 1.为表添加字段 rails g migration add_column_to_d_groups_equip_num class AddColumnToDGroupsEquipNum < ActiveRecord::Migration[5.1] def change add_column :d_groups, :equip_num ,:integer end end 2.修改表字段类型 rails g migration change_col

android sqlite 数据库升级

场景: 数据库版本v1            有一个persion表 数据库版本v2             新增表student 数据库版本v3             persion表新增一个字段 1 package com.example.natedb; 2 3 import android.content.Context; 4 import android.database.SQLException; 5 import android.database.sqlite.SQLiteData

Android -- 面试 -- 数据库升级策略

升级:重写onUpgrade方法 确定 相邻版本 的差别,从版本1开始依次迭代更新,先执行v1到v2,再v2到v3-- 为 每个版本 确定与现在数据库的差别,为每个case撰写专门的升级代码. 降级 onDowngrade()数据库降级:比如从数据库4降级到数据库3必须重写该方法. @Override public void onDowngrade(SQLiteDatabase db, int oldVersion, int newVersion) { super.onDowngrade(db,

Android SQLit数据库学习

Android中SqLite的使用详情 今天我就和大家分享一下在Android中如何使用SQLite. 首先,我们来了解一下SQLite,SQLite是一款轻型的嵌入式数据库,是遵守ACID(原子性.一致性.隔离性.持久性)的关联式数据库管理系统. SQLite的特点:     1.轻量级        使用 SQLite 只需要带一个动态库,就可以享受它的全部功能,而且那个动态库的尺寸比较小.    2.独立性(不需要安装)        SQLite 数据库的核心引擎不需要依赖第三方软件,也

Android中数据库升级

public class MySQLiteHelper extends SQLiteOpenHelper { public static final String <span style="font-family: Arial, Helvetica, sans-serif;">SQL_CREATE</span><span style="font-family: Arial, Helvetica, sans-serif;">= &q

Android 数据库升级解决方案

转自:http://blog.csdn.net/leehong2005/article/details/9128501 请考虑如下情况: 在数据库升级时,不同版本的数据库,他们定义的表结构完全可能是不一样的,比如V1.0的表A有10个column,而在V1.1的表A有12个colum,在升级时,表A增加了两列,此时我们应该怎么做呢. 总体思路 1,将表A重命名,改了A_temp. 2,创建新表A. 3,将表A_temp的数据插入到表A. 下面代码列出了更新表的实现,upgradeTables,给