码迷,mamicode.com
首页 > 移动开发 > 详细

Android技术8:SQLite数据升级

时间:2014-08-02 18:07:23      阅读:271      评论:0      收藏:0      [点我收藏+]

标签:android   style   blog   color   strong   io   数据   cti   

由于应用程序的升级,往往伴随着数据库的升级,数据库升级一般设计表的增加与删除,表添加删除字段,数据的备份等操作。

1.数据库升级

     我们都通过继承SQLiteOpenHelper类,实现对数据库的操作和版本升级等。版本升级有关方法 onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion);

当版本号大于当前数据库版本号,会调用onUpgrade方法。

2.演示数据库升级

对于表的增删相对比较简单,下面演示添加字段。

2.1原始数据库sql

private static final String SQL="CREATE TABLE IF NOT EXISTS "+TABLE+"("
+"id integer primary key autoincrement,"
+"name varchar"
+ ")";

为两个字段 id ,name;

2.2步骤

修改原表表名-->新建新表-->将原来表数据复制到新表-->删除原表

2.3代码

 1 private void upgradeTable(SQLiteDatabase db,String tablename){
 2         //1.修改原表表名    alter table TABLENAME rename to NewTableName;
 3         db.beginTransaction();
 4         String newTableName=tablename+"_temp";
 5         String sql="alter table "+ tablename +" rename to "+newTableName;
 6         Log.i(TAG,sql);
 7         db.execSQL(sql);
 8         Log.i(TAG, tablename+"--->"+newTableName);
 9         
10         //2.创建新表 ,且表名为 tablename
11         String newSQL="CREATE TABLE IF NOT EXISTS "+tablename+"("
12                 +"id integer primary key autoincrement,"
13                 +"name varchar,"
14                 +"age integer"
15                 + ")";
16         
17         db.execSQL(newSQL);
18         Log.i(TAG, tablename+"创建成功");
19         
20         //3.复制数据
21         String copySQL="insert into "+tablename+"(id,name)"+" select id,name from "+newTableName;
22         db.execSQL(copySQL);
23         Log.i(TAG, "数据复制成功");
24         
25         //4.删除临时表
26         String deleteSQL="drop table IF EXISTS "+newTableName;
27         db.execSQL(deleteSQL);
28         Log.i(TAG, newTableName+"删除成功");
29         
30         
31         db.setTransactionSuccessful();
32         db.endTransaction();
33     }

 

Android技术8:SQLite数据升级,布布扣,bubuko.com

Android技术8:SQLite数据升级

标签:android   style   blog   color   strong   io   数据   cti   

原文地址:http://www.cnblogs.com/forsta/p/3887165.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!