Heim > Datenbank > MySQL-Tutorial > Wie gehe ich mit doppelten Schlüsseln in MySQL-INSERT-Anweisungen um?

Wie gehe ich mit doppelten Schlüsseln in MySQL-INSERT-Anweisungen um?

Barbara Streisand
Freigeben: 2024-11-26 22:45:11
Original
248 Leute haben es durchsucht

How to Handle Duplicate Keys in MySQL INSERT Statements?

Doppelte Schlüssel in MySQL ignorieren oder aktualisieren

Beim Versuch, Daten in eine Tabelle einzufügen, die eine EINZIGARTIGE Einschränkung für ein bestimmtes Feld erzwingt, wie hier „Tag“. In diesem Fall kann die Begegnung mit doppelten Werten zu Fehlern führen. In dieser Frage wird untersucht, wie mit solchen Situationen umgegangen werden soll, wobei ein besonderer Schwerpunkt auf dem Ignorieren von Duplikaten liegt.

Das erste bereitgestellte Beispiel zeigt einen Versuch, mehrere Werte in die Tabelle „table_tags“ einzufügen, mit der Absicht, alle doppelten Tags zu ignorieren. Die Verwendung von „INSERT INTO ... ON DUPLICATE KEY IGNORE“ wird jedoch nicht empfohlen, da dadurch möglicherweise alle Fehler ignoriert werden, nicht nur Verstöße gegen doppelte Schlüssel.

Stattdessen besteht die empfohlene Lösung darin, „INSERT“ zu verwenden INTO ... ON DUPLICATE KEY UPDATE tag=tag;" Syntax. Mit diesem Ansatz können Sie explizit angeben, was im Falle einer Verletzung eines doppelten Schlüssels passieren soll, indem Sie in diesem Fall einfach den vorhandenen Datensatz mit demselben Wert aktualisieren.

Durch die Verwendung dieser Syntax wird sichergestellt, dass doppelte Schlüssel nicht ignoriert werden, sondern Vielmehr bleiben ihre bestehenden Werte erhalten. Der doppelte Schlüssel wird effektiv ignoriert, aber die Abfrage erzeugt keine Fehler, was wie erwartet zu „Abfrage OK, 0 Zeilen betroffen“ führt.

Das obige ist der detaillierte Inhalt vonWie gehe ich mit doppelten Schlüsseln in MySQL-INSERT-Anweisungen 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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage