2014-07-24 111 views
0

我正在学习Android,现在我有关于数据库的教训 - PetTracker。重命名数据库中的字段并重新安装应用程序

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

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

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

那么我如何让我作为应用程序运行,然后数据库应该也更新?

回答

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表为执行数据库表更新提供了非常有限的选项。如果您想将数据复制到全新的结构中,则应该考虑在此升级方法中创建临时表,您可以在其中复制数据,创建新模式,然后将数据从临时表复制到新表中。

确保您在创建DBHelper时拥有正确的DB版本号。

相关问题