MySQL: ALTER IGNORE TABLE ADD UNIQUE – Welcher Datensatz bleibt?
Bei Verwendung der ALTER IGNORE TABLE ADD UNIQUE-Anweisung in MySQL ist dies unerlässlich um sein Verhalten in Bezug auf doppelte Datensätze mit identischen eindeutigen Schlüsselwerten zu verstehen.
Insbesondere in MySQL-Versionen vor 5.7.4 erlaubte die IGNORE-Klausel, dass doppelte Datensätze unterschiedlich behandelt wurden. Für die ALTER TABLE-Operation haben Sie Folgendes angegeben:
ALTER IGNORE TABLE `my_table` ADD UNIQUE (`type`, `owner`);
Wenn Datensätze mit doppelten Typ- und Besitzerwerten vorhanden sind, hängt das Verhalten von der Existenz eines Primärschlüssels ab.
Mit Primärschlüssel (z. B. ID AUTO_INCREMENT PRIMARY KEY)
In diesem Fall bleibt der Datensatz mit der kleinsten ID erhalten, während alle anderen doppelten Datensätze mit demselben Typ und demselben Typ erhalten bleiben Eigentümerwerte werden gelöscht. Die IGNORE-Klausel weist MySQL an, alle durch doppelte Schlüsselwerte verursachten Konflikte zu ignorieren.
Ohne Primärschlüssel
Wenn kein Primärschlüssel vorhanden ist, ist das genaue Verhalten von ALTER IGNORE TABLE mehrdeutiger. Verschiedene MySQL-Versionen gehen möglicherweise unterschiedlich mit dieser Situation um, daher wird generell empfohlen, die Verwendung von IGNORE ohne Primärschlüssel zu vermeiden.
In MySQL 5.7.4 und höher
Es ist wichtig, dies zu tun Beachten Sie, dass die IGNORE-Klausel für ALTER TABLE ab MySQL 5.7.4 entfernt wurde. Der Versuch, IGNORE in diesen Versionen zu verwenden, führt zu einem Fehler.
Das obige ist der detaillierte Inhalt vonWie geht „ALTER IGNORE TABLE ADD UNIQUE“ mit doppelten Datensätzen in MySQL um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!