Heim >Datenbank >MySQL-Tutorial >Wie kann ich MySQL-INSERT-Abfragen mit „ON DUPLICATE KEY UPDATE' optimieren?
INSERT-Abfragen mit „ON DUPLICATE KEY UPDATE“ optimieren
Das MySQL-Datenbanksystem stellt die Klausel „ON DUPLICATE KEY UPDATE“ zur Handhabung von Szenarien bereit Dabei löst der Versuch, einen Datensatz mit einem doppelten Primärschlüssel einzufügen, einen Aktualisierungsvorgang aus. In diesem Artikel wird untersucht, wie Sie diese Klausel nutzen können, um effiziente und präzise Aktualisierungen zu erzielen.
Standard-INSERT mit vollständiger Feldspezifikation
Beim Versuch, einen Datensatz mit einem doppelten Schlüssel einzufügen, Sie könnten darauf zurückgreifen, alle Feldwerte in der Klausel „ON DUPLICATE KEY UPDATE“ anzugeben:
INSERT INTO table (id, a, b, c, d, e, f, g) VALUES (1, 2, 3, 4, 5, 6, 7, 8) ON DUPLICATE KEY UPDATE a=2, b=3, c=4, d=5, e=6, f=7, g=8;
Während dieser Ansatz sicherstellt, dass alle Felder korrekt aktualisiert werden, ist eine redundante Angabe von Werten erforderlich, die bereits in der ersten Einfügung bereitgestellt wurden.
Feldwerte aus der INSERT-Anweisung verwenden
Um Redundanz zu vermeiden, können Sie Folgendes tun Nutzen Sie die Syntax „VALUES()“ in der Klausel „ON DUPLICATE KEY UPDATE“:
INSERT INTO table (id, a, b, c, d, e, f, g) VALUES (1, 2, 3, 4, 5, 6, 7, 8) ON DUPLICATE KEY UPDATE a=VALUES(a), b=VALUES(b), c=VALUES(c), d=VALUES(d), e=VALUES(e), f=VALUES(f), g=VALUES(g);
Diese Syntax verweist auf Originalwerte aus der Einfügeanweisung, sodass sie nicht erneut angegeben werden müssen.
Überlegungen zu redundanten Aktualisierungen und LAST_INSERT_ID
Es ist wichtig zu beachten, dass, wenn die vorhandenen Feldwerte mit den übereinstimmen Bei neuen Versionen führt MySQL keine Updates durch. Daher ist es wichtig zu prüfen, ob tatsächlich alle Felder in der „ON DUPLICATE KEY UPDATE“-Klausel angegeben werden müssen.
Darüber hinaus kann das Abrufen der von LAST_INSERT_ID() generierten ID je nach Backend zusätzliche Bearbeitung erfordern welche Anwendung oder Middleware Sie verwenden. In bestimmten Fällen müssen Sie möglicherweise die Datenbank separat abfragen, um die zuletzt eingegebene ID zu erhalten.
Das obige ist der detaillierte Inhalt vonWie kann ich MySQL-INSERT-Abfragen mit „ON DUPLICATE KEY UPDATE' optimieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!