2

これは、_id 列とは別に UNIQUE 列がある場合です。

次の 3 つのオプションが表示されます。

  1. 挿入を競合がない場合に挿入し、存在する場合に更新を行い (これが「標準」のようです)、すべての作業をクライアントで実行して、これを解決する方法を決定します。

  2. insert を insert-or-update-if-present に変更し、update を update-if-present のままにします。これは標準の ContentProvider 契約に違反しますか?

  3. update を update-or-insert-if-not-present に変更し、insert を insert-if-no-conflict のままにします。これは、上記の 2 番目のオプションよりも意味がないので、おそらくこれを実行しませんが、最終的にはかなり似ていると思います。

さらに、最初のオプションを実行する場合、実行する利点はありますか

  1. クエリの場合、count=1 の場合は置換、そうでない場合は挿入
  2. 挿入、失敗した場合は置換
  3. 挿入に失敗した場合は置き換えます。

全体的に置き換えるよりも多くの更新が予想されますが、これがパフォーマンスのボトルネックになるとは思わないため、主にこれを保守可能にすることに関心があります。

4

1 に答える 1