[英]How to Pre-populate An Android Database Backed by ContentProvider
[英]In Android ContentProvider backed by SQLite, how should I implement insertOrUpdate semantics?
在_id列之外还有UNIQUE列的情况下。
我可以看到三个选项:
将insert保留为“ if-if-no-conflict”,将更新保留为“ update-if-present”(这似乎是“标准”),并在客户端上执行所有工作,以决定如何解决此问题。
将insert更改为insert-or-update-if-present,将update保留为update-if-present。 这会违反标准的ContentProvider合同吗?
将update更改为update-or-insert-if-present,然后将insert保留为insert-if-no-conflict。 这对我来说比上面的第二个选项没有意义,因此我可能不会这样做-但我怀疑最后它还是很相似。
另外,如果我做第一个选择,这样做有什么好处吗?
我预计将有更多更新而不是整体替换,但主要是要使它具有可维护性,因为我认为这不会成为性能瓶颈。
我的倾向是根据是否有现有记录来查询然后进行更新或插入。 您可以为此使用现有的ContentProvider方法-以后的开发人员将很容易理解。
缺点是有一些不必要的数据库命中。
本文讨论了如何将ContentProvider修改为“实现” insertOrUpdate。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.