android - 是否可以更改 sqlite db 表中的现有列

标签 android sqlite cordova ionic-framework

我创建了一个在 Play 商店中运行的应用程序,它有 3 个表,我想为一个表再添加两列并从另一个表中删除一列。如果我这样做并将其更新到 PlayStore,它会吗对现有用户数据库造成任何影响,或者他们想要卸载应用程序以获取这些新更改? 有什么好的方法可以在不影响用户数据的情况下更新表。

最佳答案

你应该使用 onUpgrade

Called when the database needs to be upgraded. The implementation should use this method to drop tables, add tables, or do anything else it needs to upgrade to the new schema version.

示例

@Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        if (oldVersion < 3) {
              db.execSQL("ALTER TABLE " + TABLE_NAME  + " ADD COLUMN mobile_no INTEGER;");
              db.execSQL("ALTER TABLE " + TABLE_NAME  + " ADD COLUMN phone_no INTEGER;");
        }

    }

关于android - 是否可以更改 sqlite db 表中的现有列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45790120/

相关文章:

android - 内部类的返回值

android - C 宏编译错误(AOSP : external/clearsilver/util/neo_err. h)

Android - 无法打开数据库

android - Cordova:未找到 Android SDK。确保它已安装。如果不在默认位置,请设置 ANDROID_HOME 环境变量

android - 在禁用 dexpreopt 的情况下构建单独的 Android 模块

java - 设备重启后检索HashMap

mysql - Windows批处理脚本2种情况

android - SQLiteDatabase 的 openOrCreateDatabase 和 Context 的区别?

javascript - cordova 中的 navigator.geolocation.getCurrentPosition 仅提供 10 米的精度

android - Android 上的 WebView 动画问题