Heim > Datenbank > MySQL-Tutorial > Hauptteil

Was passiert mit doppelten Datensätzen, wenn in MySQL eine UNIQUE-Einschränkung hinzugefügt wird?

Linda Hamilton
Freigeben: 2024-11-03 08:00:30
Original
917 Leute haben es durchsucht

What Happens to Duplicate Records When Adding a UNIQUE Constraint in MySQL?

Bestimmen der Auswirkung von ALTER IGNORE TABLE ADD UNIQUE auf doppelte Datensätze

Wenn Sie versuchen, einer Tabelle eine UNIQUE-Einschränkung für mehrere Spalten hinzuzufügen, Es ist unvermeidlich, auf doppelte Datensätze zu stoßen, die gegen diese Einschränkung verstoßen. In früheren Versionen von MySQL spielte die IGNORE-Klausel in der ALTER TABLE-Anweisung eine entscheidende Rolle bei der Behandlung solcher Duplikate.

MySQL 5.7.4 und höher: IGNORE-Klausel entfernt

Ab MySQL 5.7.4 ist die IGNORE-Klausel jedoch veraltet und ihre Verwendung führt nun zu einem Fehler. Daher ist das unten beschriebene ältere Verhalten nicht mehr anwendbar.

Verhalten in älteren MySQL-Versionen

Bei älteren MySQL-Versionen, die die IGNORE-Klausel unterstützen, tritt das folgende Verhalten auf, wenn Hinzufügen einer EINZIGARTIGEN Einschränkung:

  • Erste Zeile bleibt erhalten: Nur die erste Zeile unter denen mit doppelten Werten in den neuen eindeutigen Spalten wird beibehalten.
  • Andere doppelte Zeilen werden gelöscht: Die verbleibenden Zeilen mit doppelten Werten werden automatisch gelöscht.
  • Kürzung falscher Werte: Alle Werte, die gegen andere verstoßen Einschränkungen werden gekürzt oder geändert, um akzeptablen Grenzwerten zu entsprechen.

Im bereitgestellten Beispiel wird eine UNIQUE-Einschränkung für (Typ, Eigentümer) zu einer Tabelle hinzugefügt, die doppelte Datensätze mit Typ = „Apple“ und Eigentümer enthält = 'Apple CO', der Datensatz mit der kleinsten ID wird beibehalten. Die anderen Datensätze mit denselben Werten würden gelöscht.

Es ist jedoch wichtig zu beachten, dass dieses Verhalten spezifisch für MySQL-Versionen vor 5.7.4 ist. In modernen MySQL-Versionen wird die IGNORE-Klausel nicht mehr unterstützt und alle widersprüchlichen Datensätze führen dazu, dass die ALTER TABLE-Operation fehlschlägt.

Das obige ist der detaillierte Inhalt vonWas passiert mit doppelten Datensätzen, wenn in MySQL eine UNIQUE-Einschränkung hinzugefügt wird?. 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