Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/217.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.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_Android Sqlite - Fatal编程技术网

具有两个数据库的android应用程序

具有两个数据库的android应用程序,android,android-sqlite,Android,Android Sqlite,我正在制作一个应用程序,它在assets文件夹中包含一个数据库,比如数据库db1。当我打开应用程序时,我再次使用API创建db。这两个数据库名称相似 复制db时,我看到使用api创建的db1正在被db1写入资产。这里我有一个解决方案,首先从资产中复制数据库,然后在java中打开数据库。 在资产文件夹数据库中,它包含表,即A、B、C,以及使用代码创建的数据库,用于制作表A、B、C、D、E、F 现在我想要的是: 当我升级应用程序时,我不能盲目复制资产中的数据库,因为资产将覆盖db1(所有表)中的所有

我正在制作一个应用程序,它在assets文件夹中包含一个数据库,比如数据库db1。当我打开应用程序时,我再次使用API创建db。这两个数据库名称相似

复制db时,我看到使用api创建的db1正在被db1写入资产。这里我有一个解决方案,首先从资产中复制数据库,然后在java中打开数据库。 在资产文件夹数据库中,它包含表,即ABC,以及使用代码创建的数据库,用于制作表ABCDEF

现在我想要的是:

当我升级应用程序时,我不能盲目复制资产中的数据库,因为资产将覆盖db1(所有表)中的所有现有数据。我想知道我是否可以用其他名称复制数据库,比如说db2。然后打开并复制db2中的所有表,并用新复制的表覆盖db1中的表;i、 必须将db1中的e表ABC替换为db2中的表


我想知道这是否可能?如果可能的话,给我一些样品作为参考

升级应用程序不会强制升级数据库。因此,除非您实际更改了数据库的版本号(传递给
SQLiteOpenHelper
的构造函数),否则旧数据库不会更改

如果您确实因为更改了数据库架构而更改了数据库的版本号,那么您必须重写
onUpgrade
方法,将必要的信息从现有数据库复制到某个临时位置(或内存),从资产中复制数据库文件并将数据插回