2012-01-21 137 views
1

我知道这类问题有很多问题,我知道我不是第一个,也不是最后一个,但是我需要一些帮助解决这个问题。我试图将我的数据库从旧版升级到更新的版本,并试图找出如何做到这一点。我使用我自己的SQLiteDatabaseHelper类,它从资产文件夹复制数据库文件并将其保存到系统数据库文件夹。所以我想知道哪个是实现我的onUpgrade()函数的最好方法,所以我可以解决这个问题。Android升级数据库

我想找到一种方法将旧表格中的所有数据复制到新表格中,之后删除旧表格,但我不确定如何实现此功能。欢迎任何想法或任何形式的帮助!

谢谢!

回答

1

在你onUpgrade()方法,编写一个查询来

1) create backup_table, (make sure backup_table is not already there using IF EXISTS) 
2) Select data from original table and insert into backup 
insert into table2 (name, address) select name, address from table1 
3) remove original table 
+0

另一个问题,我有。如果我每次都使用版本1初始化数据库帮助器,并且在我的课程中,我将db_version设置为3,那么我应该如何从现在开始。我的助手类怎么能在下一次启动时检测到我已经升级了数据库而不是再次执行它。 –

0

复制就像查询旧表一样简单,插入到新表中。

然后,您可以删除旧表。