Heim > Datenbank > MySQL-Tutorial > MySQL-Einfügung oder -Aktualisierung: Wie gehe ich effizient mit eindeutigen Nicht-Primärschlüsselspalten um?

MySQL-Einfügung oder -Aktualisierung: Wie gehe ich effizient mit eindeutigen Nicht-Primärschlüsselspalten um?

DDD
Freigeben: 2024-12-06 04:53:10
Original
664 Leute haben es durchsucht

MySQL Insert or Update: How to Handle Unique Non-Primary Key Columns Efficiently?

MySql-Einfügung oder Aktualisierung basierend auf einer eindeutigen Bedingung

Das Einfügen von Daten in eine MySQL-Tabelle erfordert häufig die Überprüfung, ob die Daten bereits vorhanden sind, bevor eine Aktualisierung durchgeführt wird . Beim Umgang mit eindeutigen Nicht-Primärschlüsselspalten greift die herkömmliche UPDATE-Anweisung jedoch zu kurz.

In diesem Fall sucht der Benutzer nach einer effizienten Methode, um Daten in eine AggregatedData-Tabelle einzufügen, wenn die Datenum-Spalte nicht vorhanden ist , oder aktualisieren Sie gegebenenfalls die vorhandene Zeile.

Lösung: INSERT ... ON DUPLICATE KEY UPDATE

Wie von Jai vorgeschlagen, besteht die am besten geeignete Lösung darin, die Syntax INSERT ... ON DUPLICATE KEY UPDATE zu verwenden:

INSERT INTO AggregatedData (datenum,Timestamp)
VALUES ("734152.979166667","2010-01-14 23:30:00.000")
ON DUPLICATE KEY UPDATE 
  Timestamp=VALUES(Timestamp)
Nach dem Login kopieren

Diese Anweisung führt eine Einfügung durch, wenn das Datum wird nicht gefunden. Wenn es vorhanden ist, aktualisiert es die Zeitstempelspalte mit dem in der Funktion VALUES() bereitgestellten Wert.

Erklärung

Die Funktion VALUES() stellt sicher, dass die für die Aktualisierung verwendeten Werte mit denen übereinstimmen, die in der INSERT-Anweisung angegeben sind. Dies verhindert versehentliche Aktualisierungen von Spaltenwerten.

Vorteile von INSERT ... ON DUPLICATE KEY UPDATE

  • Stellt eine einzige Anweisung zum Einfügen oder Aktualisieren von Daten bereit und vereinfacht so die Code.
  • Bewahrt die Datenintegrität, indem doppelte Einträge verhindert werden.
  • Bietet optimierte Leistung durch Vermeidung überflüssiger Kontrollen.

Das obige ist der detaillierte Inhalt vonMySQL-Einfügung oder -Aktualisierung: Wie gehe ich effizient mit eindeutigen Nicht-Primärschlüsselspalten um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage