MySQL: Behebung des Fehlers „Integrity Constraint Violation“ während ALTER IGNORE TABLE
Bei Verwendung der ALTER IGNORE TABLE-Anweisung in MySQL zum Entfernen von Duplikaten und Wenn Sie einen eindeutigen Index erstellen, tritt möglicherweise der Fehler „Verletzung der Integritätsbeschränkung“ auf. Dies geschieht, obwohl in der MySQL-Dokumentation angegeben ist, dass das Schlüsselwort IGNORE solche Fehler verhindern soll.
Das Problem scheint in einem Fehler in der InnoDB-Version von MySQL für bestimmte Versionen zu liegen. Die IGNORE-Erweiterung verfügt über eine eingeschränkte Funktionalität mit InnoDB, was dazu führt, dass trotz ihrer Verwendung weiterhin Fehler aufgrund doppelter Schlüssel auftreten.
Um dieses Problem zu beheben, ziehen Sie den folgenden alternativen Ansatz in Betracht:
Konvertieren Sie die Tabelle an die MyISAM-Speicher-Engine mit dem folgenden Befehl:
ALTER TABLE table ENGINE MyISAM;
Führen Sie ALTER IGNORE TABLE aus Anweisung zum Erstellen des eindeutigen Index:
ALTER IGNORE TABLE table ADD UNIQUE INDEX dupidx (field);
Konvertieren Sie die Tabelle mit dem folgenden Befehl zurück in InnoDB:
ALTER TABLE table ENGINE InnoDB;
Beachten Sie, dass dies der Fall ist Die Methode funktioniert möglicherweise nicht, wenn die Tabelle Fremdschlüsseleinschränkungen aufweist. In solchen Fällen müssen Sie diese Einschränkungen vorübergehend entfernen und sie nach Abschluss der Indexerstellung wieder hinzufügen.
Das obige ist der detaillierte Inhalt vonWarum führt „ALTER IGNORE TABLE' immer noch zu „Integrity Constraint Violation'-Fehlern in MySQL InnoDB?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!