このテーマについてはすでに多くの質問と回答がありますが、私の状況には合わないようです。
離れたsqliteデータベース(DBサーバー)とローカルデータベース(フォトアルバムエントリを含むDBローカル)があります。DBサーバーから必要なときにいつでもDBローカル更新。DBサーバーには呼び出されたがあります。これは重複を防ぐためにDBローカルに格納されますが、 DBローカルにも呼び出された独自の列があります。primary key
identifier
primary key
id
携帯電話で新しいアルバムを作成する必要がある場合は、に設定されたエントリをDBローカルに挿入し、DBサーバーに到達できるようになると適切なを要求します。identifier
-1
identifier
私の問題は次のとおりです。私は多くの更新を行い、毎回主キーをインクリメントしたくありません。
DBサーバーからDBローカルを更新するとき、新しいアルバムと既存のアルバムを更新したいと思います。INSERT
UPDATE
INSERT OR REPLACE
ステートメントについて読みましたが、 DBローカルidentifier
の列をとして設定する必要があります。残念ながら、複数のセットをに設定できるため、これを行うことはできません。unique
identifier
-1
単一のリクエストでINSERT
または条件付きで実行する方法はありますか?UPDATE
ありがとう !
編集:更新はこのように行われます:DBローカルはDBサーバーから更新されます。DBローカルデータがDBサーバーにプッシュされることはありません。新しいアイテムを追加する唯一の方法は、サーバーでAPIを呼び出すことです。これにより、 DBサーバーに空のエントリが作成され、そのエントリが取得されますidentifier
。ただし、サーバーは常に到達可能であるとは限らないため(EDGE / 3G)、DBローカルの一部のエントリはにidentifier
設定されてい-1
ます。API呼び出しが対応するものとともに返されると、DBローカルの対応するエントリのidentifier
代わりにそれを保存します-1