Wenn ich überprüfen und sehen möchte, ob etwas in meinem ContentProvider
existiert, was ich normalerweise tue, ist etwas Ähnliches
aber das bedeutet, dass ich immer einen unnötigen Database-Aufruf machen muss, um die Dinge zu verlangsamen, besonders die größere Anzahl an Überprüfungen in der Datenbank, die ich tun muss. Es muss einen besseren Weg geben, damit umzugehen, also muss ich nicht immer zuerst fragen.
Ich schaute auf diese Frage
Android Contentprovider - Aktualisierung innerhalb einer Einfügemethode
> aber die Verwendung von insertWithOnConflict
überprüft nur die Primärschlüssel-ID und in meinem Fall wird das nicht funktionieren, weil was ich überprüfe, ist nicht die ID, sondern eine eindeutige Zeichenfolge aus einer Server-Datenbank.
kann ich also etwas mit dem Content-Provider machen, also muss ich nicht immer eine Abfrage machen, um zu überprüfen, ob das Objekt bereits existiert?
Sie können eine UNIQUE-Einschränkung für Spalten haben, die sich von ID 1 unterscheiden. Beispiel:
CREATE TABLE TEST (_id INTEGER PRIMARY KEY AUTOINCREMENT,
server_id INTEGER NOT NULL, name TEXT, UNIQUE(server_id))
Wenn Sie diese Tabelle verwenden, können Sie in der Einfügemethode Ihres Inhaltsanbieters Folgendes tun:
%Vor%Ich hoffe, es hilft. Prost!
Edy Bolos Antwort kann einfach als
geschrieben werden CREATE TABLE TEST (
_id INTEGER PRIMARY KEY AUTOINCREMENT,
server_id INTEGER NOT NULL,
name TEXT UNIQUE ON CONFLICT REPLACE);
Fügen Sie UNIQUE ON CONFLICT REPLACE in der create table-Abfrage hinzu.
Tags und Links android sqlite android-contentprovider