Android SqliteAssetHelper - 将 Assets 中的数据库表与现有表合并

标签 android android-sqlite sqliteopenhelper

我正在使用 Android SqliteAssetHelper 库 ( https://github.com/jgilfelt/android-sqlite-asset-helper ) 我已经使用这个库发送了我的数据库,并且该数据库包含 table1 上的一些记录。 现在我想用一个新数据库更新我的应用程序,其中包含应该插入到我已经发货的记录中的附加记录。我不确定如何为升级编写 SQL 脚本,因为两个数据库的模式相同。有人试过吗?

最佳答案

在 op 在其他答案中发表评论后,澄清了有两个数据库要合并在一起。操作人员想知道是否有一种方便的方法将两个数据库与 SQLiteAssetHelper 库合并在一起。

不幸的是,没有一种直接方法可以做到这一点,因为该库也使用相同的 Android 模式运行脚本来修改现有数据库。

解决方法是将第二个数据库(50 条记录的集合)转换为 50 个 INSERT 语句,这些语句将放在现有的 50 个语句旁边。(互联网上有各种工具可以简化该步骤,因此您不必手工完成。)因此,只要业务逻辑可以与它们一起工作,如果模式相同,它们就可以全部放入原始表中;或者,如果您需要将它们分开,仍然使用 50 个 INSERT,但让它们 INSERT 到不同的表名。

然后,一旦有了这 50 个 INSERT 语句和 50 个新行的数据,将这些语句放在升级脚本中,您就可以遵循标准库 documentation关于如何通过该库运行该脚本。

关于Android SqliteAssetHelper - 将 Assets 中的数据库表与现有表合并,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37262495/

相关文章:

android - 关于未在 android sqlite 中调用的升级方法

android - 为什么Android记事本教程中DBHelper没有关闭?

android - Android抽象类SQLiteOpenHelper中的version是什么意思

android - 如何在flutter中使用rewarded video listener?

Android 发行版构建工作不正常。开发构建工作正常

java - 继承 - 从父类返回扩展类

android - 房间迁移更改表不添加新列并迁移一次又一次地被调用

Android SQLite Journal 行为改变了吗?

android - 将json格式的字符串转换成jsonObject Android

java - 从数据库中获取特定列的最新行