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!