android有关数据库的升级

 软件升级当然会牵扯到数据库的升级,对于一个项目来说,升级数据库最低要求就是保证原始数据的保留

 SQLiteOpenHelper是数据库管理时最方便的助手,其中有两大方法:

//创建数据库,第一次安装时调用

@Override
 public void onCreate(SQLiteDatabase db) {

}

//数据库升级,此功能在程序升级时,如果数据库版本变化时调用

@Override
 public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

}

下面主要说明用于升级的onUpgrade方法里的代码

一、用ALTER TABLE添加新字段

这种方式只适合于往表里加字段(有时删除字段会出现异常),加的字段位于表的末尾

db.execSQL("ALTER TABLE goods ADD vip VARCHAR(32)");

 

二、将“旧的表改为临时表”——>“创建新的表”——>“导入数据”——>“删除临时表”

这种方式相比上面的方法比较麻烦,但是功能强大,可以对数据库准确操作,增加字段(可以再任何地方),删除字段等功能

步骤一:

db.execSQL("ALTER TABLE goods RENAME TO _temp_goods");

步骤二:

db.execSQL("此处添加创建goods 表语句");

步骤三:

db.execSQL("INSERT INTO goods SELECT  goodsId, goodsName, " ",goodsPice  FROM _temp_goods");

             红色的引号表示,给新添字段vip默认值为空字符串

             注意这时导入的数据顺序一定要和你创建的新表的顺序对应,不然会出现导入数据不对

步骤四:

db.execSQL("DROP TABLE IF EXISTS _temp_goods");

 

以上是个人在项目中用到的,分享一下

 

 

你可能感兴趣的:(android有关数据库的升级)