![](/img/trans.png)
[英]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.