我正在学习Android,现在我有关于数据库的教训 - PetTracker。重命名数据库中的字段并重新安装应用程序
我使用Eclipse +我的手机进行测试。
我想在这个应用程序重命名字段,这工作正常,但如果我运行后的应用程序更改,然后我有错误 - 字段不存在,但如果我卸载应用程序在我的手机上,并再次运行应用程序,然后这工作正常。
那么我如何让我作为应用程序运行,然后数据库应该也更新?
我正在学习Android,现在我有关于数据库的教训 - PetTracker。重命名数据库中的字段并重新安装应用程序
我使用Eclipse +我的手机进行测试。
我想在这个应用程序重命名字段,这工作正常,但如果我运行后的应用程序更改,然后我有错误 - 字段不存在,但如果我卸载应用程序在我的手机上,并再次运行应用程序,然后这工作正常。
那么我如何让我作为应用程序运行,然后数据库应该也更新?
您应该覆盖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版本号。
您将需要实施onUpgrade()并在此处编写您的更新表。
此外,您还需要增加通过SqliteOpenHelper contructor的新版本的数据库版本。