这是在 _id 列之外还有一个 UNIQUE 列的情况。
我可以看到三个选项:
将 insert 保留为 insert-if-no-conflict,将 update 保留为 update-if-present(这似乎是“标准”),并在客户端执行所有工作以决定如何解决此问题。
将 insert 更改为 insert-or-update-if-present 并将 update 保留为 update-if-present。这是否违反了标准的 ContentProvider 合同?
将 update 更改为 update-or-insert-if-not-present 并将 insert 保留为 insert-if-no-conflict。这对我来说比上面的第二个选项更没有意义,所以我可能不会这样做 - 但我怀疑它最终非常相似。
另外,如果我做第一个选项,这样做有什么好处吗
- 查询然后如果count=1,替换,否则插入
- 插入,如果失败则替换
- 替换,如果插入失败。
我预计更新比整体更新更多,但我主要关心的是使其可维护,因为我不认为这会成为性能瓶颈。