Zum Beispiel sind A und B eins zu viele, A hat n Datensätze von B und die ID ist (1, 2, 3, 4). Jetzt wird sie als (3, 4, 5, 6) übermittelt ) und A und B müssen aktualisiert werden. Die Beziehung B ist (3, 4, 5, 6). Soll ich zuerst die ursprüngliche Beziehung (1, 2, 3, 4) löschen und dann (3, 4, 5) einfügen? , 6)? Oder nehmen Sie die alten Daten heraus und vergleichen Sie sie vor der Aktualisierung mit den neuen Daten?
Zum Beispiel sind A und B eins zu viele, A hat n Datensätze von B und die ID ist (1, 2, 3, 4). Jetzt wird sie als (3, 4, 5, 6) übermittelt ) und A und B müssen aktualisiert werden. Die Beziehung B ist (3, 4, 5, 6). Soll ich zuerst die ursprüngliche Beziehung (1, 2, 3, 4) löschen und dann (3, 4, 5) einfügen? , 6)? Oder nehmen Sie die alten Daten heraus und vergleichen Sie sie vor der Aktualisierung mit den neuen Daten?
Wenn kein Index vorhanden ist, verwende ich zuerst delete
und dann insert
.
Aber im Fall der Indizierung verwende ich zuerst die folgende Methode update
und dann insert
:
Fügen Sie das Feld is_deleted
zur Beziehungstabelle hinzu. Der Standardwert ist 0. is_deleted
wird verwendet, um zu markieren, ob die Beziehung beendet ist
SQL
<code>> `UPDATE table SET is_deleted = 1 WHERE id1=A;` > `REPLACE INTO table (id1, id2, is_deleted) VALUES('A',3,0), ('A',4,0);` </code>
Methode 1:
Methode 2:
Einfach und grob, zuerst löschen und dann einfügen.
Es wird empfohlen, zum Vergleich die alten Daten herauszunehmen.
Zuerst löschen, dann einfügen und gleichzeitig ein Archivfeld hinzufügen, es als Zeichenfolge speichern, dieses Mal mit speziellen Symbolen von der vorherigen Beziehung trennen und anhängen.