Ich bin mit SQLite speichern einen id, Uuid, Wert und ein gefangen Wert.SQLite 'INSERT INTO OR REPLACE' falsches Verhalten
I Erstellen Sie die Tabelle mit diesem Befehl:
CREATE TABLE IF NOT EXISTS statz_fish_caught
('id' INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
'uuid' TEXT NOT NULL,
'value' INTEGER NOT NULL,
'caught' TEXT NOT NULL);
ich diesen Befehl verwenden, um ein (oder ersetzen) Zeilen:
INSERT OR REPLACE INTO statz_fish_caught (uuid,value,caught)
VALUES ('uuid comes here', a number here, 'a certain string').
Angenommen, Sie haben diese Daten in der Tabelle haben:
http://pasteboard.co/gofap3y.png
Diese Daten würden bedeuten, dass UUID1 abgefangen wurde insgesamt 9 (1 + 5 + 3) Fische. 1 von Fisch Typ 1, 5 von Fisch Typ 2 und 3 von Fisch Typ 3. UUID2 hat nur 10 Fische vom Fisch Typ 1 gefangen. Nun stellen wir uns vor, UUID1 fängt einen neuen Fisch Typ: Fisch Typ 4. Die Datenbank sollte eine neue Zeile erstellen mit einem auto erhöhte Wert von id 5, mit Uuid als ‚uuid1‘, Wert = 1 und = Fischart 4.
Nun wollen wir auch UUID vorstellen gefangen fängt einen anderen Fisch Fisch Typ 3. Die Reihe von uuid1 mit Fischart 3 (es hat ID 3) soll Wert 4, so repräsentieren aktualisiert werden:
http://pasteboard.co/goBZatx.png
Ist das möglich, wenn ja, wie?
Dies ist in der Tat, was ich brauche gibt es eine Möglichkeit, die DBMS automatisch die id-Spalte tut Wenn nicht, wie würde ich mich über manuell zu gehen.? Aktualisierung der ID jedes Mal ? Ich müsste zuerst wissen, was die ID ist, oder? – Staartvin
Um das Autoinkrement loszuwerden, sollten Sie sich mit dem Benutzer dieser Datenbank erkundigen, wenn ein anderes Feld als Primärschlüssel verwendet werden kann. Wenn Sie aus irgendeinem Grund mit dem Autoinkrement stecken bleiben (was theoretisch nicht der beste Ansatz ist), können Sie ein anderes Feld als "EINZIGARTIG" festlegen, wie in der anderen Antwort vorgeschlagen. Auf diese Weise wird das Ersetzen wirksam, wenn dieses Feld einen Konflikt hat. – Cynical
Es scheint, ich bin zu vage. Ich habe meinen ursprünglichen Post mit verschiedenen Bildern aktualisiert, die erklären, was jede Spalte bedeutet. Gibt es eine Möglichkeit, mit SQLite zu arbeiten? (Btw, du bist zweite Lösung war nicht das, was ich gesucht habe, tut mir leid!) – Staartvin