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.
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