android-升级预填充的sqlite数据库表,而不用用户输入删除表?

android-升级预填充的sqlite数据库表,而不用用户输入删除表?,第1张

概述我正在使用SqliteDB创建一个Android应用程序,该数据库具有几个带有预填充数据的表(500行),并且还具有将由用户填充的表.我计划分发数据库的方式是通过以下方法向应用UsingyourownSQLitedatabaseinAndroidapplications添加预填充的数据库.我对此有一个问题,但是当涉及到升

我正在使用sqlite DB创建一个Android应用程序,该数据库具有几个带有预填充数据的表(500行),并且还具有将由用户填充的表.

我计划分发数据库的方式是通过以下方法向应用Using your own SQLite database in Android applications添加预填充的数据库.

我对此有一个问题,但是当涉及到升级时,我可能会向预先填充的表中添加许多行,甚至可能修改现有行中的许多数据,我想完全替换那些现有行表格与新的预填充表格中的表格相同,但用户填充的表格保持完整.

我发现了另一个帖子How do i upgrade my pre-populated sqlite database on my device without re-creating tables?,其中用户建议这完全是错误的方法(“正确的做事方式与您提出的方式完全不同”),因为我希望升级尽可能高效.因为我实际上尚未发布我的第一个版本,所以我应该改变我的方法吗?

在这种情况下最有效的方法是什么?

解决方法:

The way I plan on distributing the database is via the following method for adding a pre-populated database to an app Using your own sqlite database in AndroID applications.

该代码已经过时了一段时间.请考虑使用更现代且受支持的版本like SQLiteAssetHelper.

I want to completely replace those existing tables with the tables from the new pre-populated tables, yet leave the user populated tables intact

sqliteAssetHelper支持两种现成的模式:

>用新的打包副本替换整个数据库
>运行您自己的sql脚本以更新现有已安装的数据库,而忽略与应用程序打包在一起的副本

由于sqliteAssetHelper是开源的,因此您可以查看Jeff Gilfelt的编写方式,并尝试利用该方式以某种方式支持您的混合方案.

就个人而言,除非您需要在“预填充表”和“用户填充表”之间进行联接,否则我建议您使用两个单独的数据库.一种是所有预先填充的数据,您可以根据应用程序更新完全替换这些数据.另一个将保存用户表,您可以使用更常规的sqliteOpenHelper处理该表.而且,即使我没有亲自尝试过这种情况,即使使用两个单独的数据库,您也可以使用ATTACH DATABASE进行联接.

总结

以上是内存溢出为你收集整理的android-升级预填充的sqlite数据库表,而不用用户输入删除表?全部内容,希望文章能够帮你解决android-升级预填充的sqlite数据库表,而不用用户输入删除表?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/web/1074437.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存