我有情况:
在较新版本的应用程序中,我将向SQLite表添加另一列。我需要使此更改在应用程序更新时生效,并且不会丢失数据库中的数据(通过使用新结构重新创建)。
可能在onUpgrade中启动我的SQL Update脚本吗?如何正确地做到这一点?
答案 0 :(得分:3)
您必须在onCreate()
中升级数据库版本,然后使用onUpgrade()
。像这样:
public YouSQLiteHandler(Context context) {
super(context, Constants.DATABASE_NAME, null, Constants.DATABASE_VERSION); --> 1 to 2 for example
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
addNewColumnTable();
}
当您更改数据库版本时,Android会自动调用onUpgrade()
,并且当您更新应用时,您将使用onUpgrade()
中的所有更改更新您的数据库
更多信息:
http://www.michenux.net/android-database-sqlite-creation-upgrade-245.html