Beim Einfügen von Daten in eine Tabelle, in der bestimmte Spalten möglicherweise bereits vorhanden sind vorhanden sind, möchten Sie diese Spalten möglicherweise mit neuen Werten aktualisieren. MySQL bietet mit der „ON DUPLICATE KEY UPDATE“-Klausel eine praktische Syntax für solche Szenarien.
In Ihrer Abfrage haben Sie eine „INSERT INTO“-Anweisung, gefolgt von einer „SELECT“-Anweisung. Das Ziel besteht darin, neue Zeilen in die „Lee“-Tabelle einzufügen und vorhandene Zeilen zu aktualisieren, die einem eindeutigen Schlüssel entsprechen. Dazu müssen Sie in der Klausel „ON DUPLICATE KEY UPDATE“ angeben, welche Spalten aktualisiert werden sollen.
MySQL interpretiert den Teil vor dem Gleichheitszeichen (=) als Verweis auf die in der Klausel „INSERT INTO“ genannten Spalten "-Klausel. Der Teil nach dem Gleichheitszeichen bezieht sich auf die Spalten in der „SELECT“-Klausel.
Zum Beispiel:
INSERT INTO lee(exp_id, created_by, location, animal, starttime, endtime, entct, inact, inadur, inadist, smlct, smldur, smldist, larct, lardur, lardist, emptyct, emptydur) SELECT id, uid, t.location, t.animal, t.starttime, t.endtime, t.entct, t.inact, t.inadur, t.inadist, t.smlct, t.smldur, t.smldist, t.larct, t.lardur, t.lardist, t.emptyct, t.emptydur FROM tmp t WHERE uid=x ON DUPLICATE KEY UPDATE entct=t.entct, inact=t.inact, ...
In dieser Abfrage sind dies die Spalten in der „INSERT INTO“-Klausel Nicht aktualisiert sind „exp_id“, „created_by“, „location“, „animal“, „starttime“ und „endtime“. Alle anderen Spalten wie „entct“, „inact“, „inadur“, „inadist“ usw. werden mit Werten aus der „SELECT“-Klausel aktualisiert.
Durch die Verwendung der richtigen Syntax können Sie dies tun Führen Sie Einfügungen und Aktualisierungen in einer einzigen Abfrage durch und stellen Sie so sicher, dass Ihre Daten effizient auf dem neuesten Stand gehalten werden.
Das obige ist der detaillierte Inhalt vonWie kann ich vorhandene Datensätze effizient aktualisieren, während ich mit MySQLs „INSERT INTO ... SELECT ... ON DUPLICATE KEY UPDATE' neue einfüge?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!