Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL:ALTER IGNORE TABLE ADD UNIQUE, was wird abgeschnitten?

Der erste Datensatz wird behalten, der Rest gelöscht §§ :

IGNORE ist eine MySQL-Erweiterung zu Standard-SQL. Es steuert, wie ALTERTABLE funktioniert, wenn es Duplikate auf eindeutigen Schlüsseln in der neuen Tabelle gibt oder wenn Warnungen auftreten, wenn der strikte Modus aktiviert ist. Wenn IGNORE nicht angegeben ist, wird der Kopiervorgang abgebrochen und zurückgesetzt, wenn Duplicate-Key-Fehler auftreten. Wenn IGNORE angegeben ist, nur die erste Zeile wird von Zeilen mit Duplikaten auf einem eindeutigen Schlüssel verwendet, die anderen widersprüchlichen Zeilen werden gelöscht . Falsche Werte werden auf den am besten übereinstimmenden akzeptablen Wert gekürzt

Ich vermute, dass "erster" hier diejenige mit der kleinsten ID bedeutet, vorausgesetzt, die ID ist der Primärschlüssel.

Beachten Sie auch:

Ab MySQL 5.7.4 ist die Datei IGNORE -Klausel für ALTER TABLE wird entfernt und seine Verwendung erzeugt einen Fehler .