Upserting mit komplexen Tabellen: Mehrere Spalten aktualisieren
Beim Durchführen von Upsert-Vorgängen mit mehreren Spalten stellt sich die Frage, ob es effizient ist, mehrere zu verwenden Wählen Sie Anweisungen im Aktualisierungsteil aus. Obwohl es technisch machbar ist, gibt es einen besseren Ansatz.
Betrachten Sie das bereitgestellte Beispiel:
INSERT INTO `item` (`item_name`, items_in_stock) VALUES('A', 27) ON DUPLICATE KEY UPDATE `new_items_count` = 27 + (SELECT items_in_stock where item_name = 'A')
Diese Abfrage addiert effektiv die eingehende Menge zum vorhandenen Wert für den angegebenen Artikel. Die Unterauswahl ist jedoch nicht erforderlich.
Die korrigierte Version der Abfrage lautet wie folgt:
INSERT INTO `item` (`item_name`, items_in_stock) VALUES( 'A', 27) ON DUPLICATE KEY UPDATE `new_items_count` = `new_items_count` + 27
Durch Weglassen der Unterauswahl nutzt die Abfrage die Fähigkeit von MySQL, auf die Zeile zu verweisen, die das ON ausgelöst hat Aktion „DOPPELTER SCHLÜSSEL“. Dadurch entfällt die Notwendigkeit zusätzlicher Select-Anweisungen und der Aktualisierungsprozess wird optimiert.
Denken Sie daran, dass Einfachheit oft der Schlüssel zu effizienten Abläufen ist. Indem Sie die verfügbaren Optionen sorgfältig abwägen und unnötige Komplexität vermeiden, können Sie Ihre Upsert-Abfragen hinsichtlich Leistung und Codelesbarkeit optimieren.
Das obige ist der detaillierte Inhalt vonIst die Verwendung mehrerer SELECT-Anweisungen für das Upserting mit komplexen Tabellen effizient?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!