„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie fügt MySQL ein Einfügen ... auf doppelte Schlüsselaktualisierungsvorgänge?

Wie fügt MySQL ein Einfügen ... auf doppelte Schlüsselaktualisierungsvorgänge?

Gepostet am 2025-02-26
Durchsuche:815

How Does MySQL's INSERT ... ON DUPLICATE KEY UPDATE Handle Upsert Operations?

Effiziente Störungsoperation für MySQL: Verwenden von Einfügen ... auf Duplicate Key Update

]

In der MySQL -Datenbankverwaltung ist es häufig erforderlich, Operationen wie das Einsetzen neuer Zeilen oder die Aktualisierung vorhandener Zeilen auf der Grundlage der Daten auszuführen. Dies wird als "Upsert" -Operation bezeichnet (einfügen oder aktualisieren).

MySQL stellt die einfügen ... auf doppelte Schlüsselaktualisierung Syntax, um die Upsert -Funktion effizient zu implementieren. Sein Arbeitsprinzip ist wie folgt:

INSERT INTO `table_name`
(`column1`, `column2`, ...)
VALUES
(value1, value2, ...)
ON DUPLICATE KEY UPDATE
`column1` = value1_updated,
`column2` = value2_updated,
...
Die

insert angibt den Wert, der in die Tabelle eingefügt werden soll. Auf doppelter Schlüssel -Update definiert die Klausel die zu erledigende Aktion, wenn in der Tabelle eine Zeile mit demselben Primärschlüssel (oder eindeutiger Index) vorhanden ist.

Zum Beispiel die folgende Tabelle betrachten:

CREATE TABLE `usage` (
    `thing_id` INT NOT NULL PRIMARY KEY,
    `times_used` INT DEFAULT 0,
    `first_time_used` TIMESTAMP
);

Wenn Sie neue Daten für die Zeile mit ting_id von 4815162342 einfügen möchten, fügen Sie 1 zur Spalte times_used und setze first_time_used zum aktuellen Zeitestempel, zum Zeitpunkt des Zeitpunkts, zum aktuellen Zeitestempel, zu Sie können die folgende Abfrage verwenden:

INSERT INTO `usage`
(`thing_id`, `times_used`, `first_time_used`)
VALUES
(4815162342, 1, NOW())
ON DUPLICATE KEY UPDATE
`times_used` = `times_used`   1

Wenn die Zeile mit ting_id von 4815162342 bereits existiert, aktualisiert die Abfrage die Spalte times_used , während first_time_used unverändert bleibt. Andernfalls wird eine neue Linie eingefügt.

einfügen ... auf doppelte Schlüsselaktualisierung ist eine flexible und effiziente Technologie für die Durchführung von Vorgängen in MySQL. Sie können Einfügungsvorgänge mit einer einzelnen Abfrage ausführen, die Code vereinfachen und die Leistung verbessern.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3