Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 升级数据库。我可以更改表还是需要创建新表?_Android_Sqlite_Upgrade - Fatal编程技术网

Android 升级数据库。我可以更改表还是需要创建新表?

Android 升级数据库。我可以更改表还是需要创建新表?,android,sqlite,upgrade,Android,Sqlite,Upgrade,我正在我的应用程序中使用一个数据库,该数据库目前位于Google Play上。现在我发布了一个更新,并在现有表中添加了一个新列。看起来我需要使用SQLiteOpenHelper类的onUpgrade()方法。我只是想知道我是否需要重新创建整个表,这将导致备份/恢复(这是一个复杂的)过程,或者我可以在升级时更改它?我应该如何处理代码中的升级?实现onUpgrade()方法就足够了吗?可能是个好例子?非常感谢您的意见,非常感谢。是的,您可以更改表格。无需再次创建它 private stati

我正在我的应用程序中使用一个数据库,该数据库目前位于Google Play上。现在我发布了一个更新,并在现有表中添加了一个新列。看起来我需要使用
SQLiteOpenHelper
类的
onUpgrade()
方法。我只是想知道我是否需要重新创建整个表,这将导致备份/恢复(这是一个复杂的)过程,或者我可以在升级时更改它?我应该如何处理代码中的升级?实现
onUpgrade()
方法就足够了吗?可能是个好例子?非常感谢您的意见,非常感谢。

是的,您可以更改表格。无需再次创建它

    private static final String ALTER_USER_TABLE_ADD_USER_SOCIETY =  "ALTER TABLE user_table ADD user_society TEXT";
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) 
    {
        if(newVersion > oldVersion)
        {
            db.execSQL(ALTER_USER_TABLE_ADD_USER_SOCIETY);
        }
    }

这些新版本和旧版本是什么?它们是从哪里来的?在onUpgrade()方法中。旧的和新的是数据库版本,因为更改数据库版本时会调用onUpgrade方法。