Heim >Datenbank >MySQL-Tutorial >Wie kann MySQLs INSERT ... ON DUPLICATE KEY UPDATE bedingte Einfügungen und Aktualisierungen vereinfachen?
MySQLs INSERT ... ON DUPLICATE KEY UPDATE-Anweisung: Vereinfachtes bedingtes Einfügen und Aktualisieren
Wenn Sie eine relationale Datenbank wie MySQL verwenden, müssen Sie möglicherweise bedingte Einfüge- oder Aktualisierungsvorgänge ausführen. Dies geschieht, wenn Sie einen neuen Datensatz erstellen müssen, wenn dieser noch nicht vorhanden ist, oder einen Datensatz aktualisieren müssen, wenn er bereits vorhanden ist. Der traditionelle Ansatz besteht darin, eine Kombination aus SELECT- und INSERT- oder UPDATE-Abfragen zu verwenden, was komplex und ineffizient werden kann.
Glücklicherweise bietet MySQL eine elegantere Lösung: die INSERT ... ON DUPLICATE KEY UPDATE
-Anweisung. Mit diesem vielseitigen Befehl können Sie eine Zeile einfügen, wenn der Datensatz nicht vorhanden ist, oder eine Zeile aktualisieren, wenn in der Tabelle bereits eine Zeile mit demselben Schlüssel vorhanden ist.
Grammatik:
<code class="language-sql">INSERT INTO `table_name` (`column_list`) VALUES (`value_list`) ON DUPLICATE KEY UPDATE `column_name` = `new_value`</code>
So funktioniert es:
ON DUPLICATE KEY UPDATE
-Klausel an, welche Spalten mit welchen der bereitgestellten Werte aktualisiert werden sollen. Beispiel:
Betrachten Sie das folgende Beispiel:
<code class="language-sql">INSERT INTO `usage` (`thing_id`, `times_used`, `first_time_used`) VALUES (4815162342, 1, NOW()) ON DUPLICATE KEY UPDATE `times_used` = `times_used` + 1</code>
thing_id
einen Primärschlüsselwert von 4815162342 hat, der nicht existiert, fügen Sie eine neue Zeile mit dem angegebenen Wert in die Tabelle usage
ein. thing_id
bereits einen Primärschlüsselwert von 4815162342 hat, aktualisieren Sie die Spalte times_used
, indem Sie 1 zu ihrem aktuellen Wert hinzufügen. Vorteile:
INSERT ... ON DUPLICATE KEY UPDATE
bietet eine präzise und klare Möglichkeit, Einfüge- und Aktualisierungsvorgänge mit einer einzigen Abfrage durchzuführen. Das obige ist der detaillierte Inhalt vonWie kann MySQLs INSERT ... ON DUPLICATE KEY UPDATE bedingte Einfügungen und Aktualisierungen vereinfachen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!