Es ist sicherlich einfachste, mindestens, um sie alle zu löschen und neue zu erstellen. Immerhin sind es nur zwei Abfragen.
DELETE FROM PresentationAsset WHERE presentationid = 1
INSERT INTO PresentationAsset VALUES (1, 1), (1, 2), (1, 3)
diejenigen Unter der Annahme, sind in der Tat die einzigen beiden Spalten in dieser Tabelle (keine Zeitstempel oder irgendetwas, zum Beispiel), ich aus irgendeinem Grund nicht vorstellen, können Sie es mehr als das erschweren bräuchten.
Die Alternative zum Löschen Ihrer bestehenden Zeilen und Einfügen aller neuen Zeilen wäre, die bereits existierenden zu behalten, aber diejenigen zu löschen, die nicht mehr existieren sollten, und neue einzufügen. Im Wesentlichen haben Sie immer noch mindestens eine DELETE
und eine INSERT
, so dass es in den meisten realen Anwendungen nicht viel Leistungsunterschied geben sollte. Die Leistung kann bei der ersten Vorgehensweise sogar besser sein, da weniger Wertüberprüfung pro Operation erforderlich ist.
Wenn Sie mit einem ausreichend großen Szenario arbeiten, in dem ein so geringer Leistungsunterschied wichtig wäre, würden Sie wahrscheinlich wirklich alle Optionen testen und die Leistung selbst messen wollen.
Und natürlich, wenn diese nicht die einzigen zwei Spalten in Ihrer Tabelle sind, müssen Sie die Werte der anderen Spalten für die Zeilen, die Sie aktualisieren, ordnungsgemäß zu halten, so dass alle löschen und neue einfügen wäre sowieso keine Option.
Ja, das ist ziemlich genau das, was ich dachte.Es wäre zu mühsam, nach vorhandenen Daten zu suchen, die sich nicht ändern und so weiter. Danke für die Antwort. – dcolumbus