重命名数据库中的字段并重新安装应用程序

时间:2014-07-24 17:50:58

标签: android eclipse sqlite

我正在学习Android,现在我有关于数据库的教训 - PetTracker。

http://androidsvnex.googlecode.com/svn/trunk/androidsvnex/PetListTracker/src/kr/co/sqlite/persistent/pet/PetDatabase.java

我使用Eclipse +手机进行测试。

我想在这个应用程序重命名字段,这工作正常,但如果我在更改后运行应用程序然后我有错误 - 字段不存在,但如果我在我的手机上卸载应用程序并再次运行应用程序然后这工作正常。

那么,如果我作为应用程序运行,那么如何进行数据库更新呢?

2 个答案:

答案 0 :(得分:1)

您需要实现onUpgrade()并在此处编写您的更新表。
您还需要在SqliteOpenHelper contructor中传递新版本的数据库版本。

答案 1 :(得分:1)

您应该覆盖SQLiteOpenHelper中的onUpgrade方法。你应该编写这样的代码。

public void onUpgrade (SQLiteDatabase db,int oldVersion,int newVersion){
  String update = ALTER TABLE <table_name> ADD COLUMN <column_name> <column_type>;
  db.execSQL(update);
}

Alter表为您提供了对数据库表执行更新的非常有限的选项。如果要将数据复制到全新的结构中,则应考虑创建临时表,在此表中可以复制数据,创建新模式,然后在此升级方法中将数据从临时表复制到新表。 / p>

确保在创建DBHelper时正确的数据库版本号。