


Wie kann MySQLs INSERT ... ON DUPLICATE KEY UPDATE mit bedingten Einfügungen und Aktualisierungen umgehen?
Verwaltung von Duplikaten mit bedingten Einfügungen und Aktualisierungen in MySQL
Bei der Arbeit mit Datenbanken ist es oft notwendig, sich mit Situationen auseinanderzusetzen, in denen Datensätze mit demselben eindeutigen Wert erforderlich sein könnten entweder eingefügt oder aktualisiert werden. MySQL bietet durch seine INSERT ... ON DUPLICATE KEY UPDATE-Syntax eine praktische Lösung für dieses Szenario.
Betrachten Sie die in der Frage beschriebene Situation. Ein Benutzer möchte neue Daten in die AggregatedData-Tabelle einfügen. Sie möchten jedoch, dass diese Daten nur eingefügt werden, wenn das Datenfeld nicht bereits in der Tabelle vorhanden ist. Wenn es existiert, möchten sie das Zeitstempelfeld mit dem neuen Wert aktualisieren.
Der ursprüngliche Ansatz des Benutzers umfasste eine UPDATE-Anweisung:
UPDATE AggregatedData SET datenum="734152.979166667", Timestamp="2010-01-14 23:30:00.000" WHERE datenum="734152.979166667";
Während diese Anweisung funktionieren würde, wenn Der Datenwert ist bereits vorhanden. Es würde fehlschlagen, wenn der Wert nicht in der Tabelle vorhanden wäre. Um diese Situation effektiv zu bewältigen, kommt INSERT ... ON DUPLICATE KEY UPDATE ins Spiel.
Die korrekte Syntax für diesen Vorgang lautet:
INSERT INTO AggregatedData (datenum, Timestamp) VALUES ("734152.979166667", "2010-01-14 23:30:00.000") ON DUPLICATE KEY UPDATE Timestamp=VALUES(Timestamp)
In dieser Anweisung:
- Der INSERT ...-Teil versucht, eine neue Zeile mit den angegebenen Daten in die Tabelle einzufügen.
- Der ON DUPLICATE Der Teil „KEY UPDATE ...“ gibt an, was zu tun ist, wenn bereits eine Zeile mit demselben Datenwert vorhanden ist. In diesem Fall aktualisiert es das Zeitstempelfeld mit dem in der VALUES(Timestamp)-Klausel bereitgestellten Wert.
Mit diesem Ansatz kann der Benutzer sicherstellen, dass neue Daten eingefügt werden, wenn das Datum eindeutig ist, und dass vorhandene Daten aktualisiert werden, wenn es sich bei dem Datenum um ein Duplikat handelt. Das Datenfeld muss nicht in die UPDATE-Klausel aufgenommen werden, da es nicht geändert werden kann.
Das obige ist der detaillierte Inhalt vonWie kann MySQLs INSERT ... ON DUPLICATE KEY UPDATE mit bedingten Einfügungen und Aktualisierungen umgehen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Reduzieren Sie die Verwendung des MySQL -Speichers im Docker

Wie verändern Sie eine Tabelle in MySQL mit der Änderungstabelleanweisung?

So lösen Sie das Problem der MySQL können die gemeinsame Bibliothek nicht öffnen

Führen Sie MySQL in Linux aus (mit/ohne Podman -Container mit Phpmyadmin)

Ausführen mehrerer MySQL-Versionen auf macOS: Eine Schritt-für-Schritt-Anleitung

Was sind einige beliebte MySQL -GUI -Tools (z. B. MySQL Workbench, PhpMyAdmin)?

Wie konfiguriere ich die SSL/TLS -Verschlüsselung für MySQL -Verbindungen?
