"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Pourquoi modifier l'ignorance qui échoue dans InNODB et les solutions

Pourquoi modifier l'ignorance qui échoue dans InNODB et les solutions

Publié le 2025-04-14
Parcourir:671

Why Does ALTER IGNORE TABLE Fail with InnoDB and How to Workaround It?

mysql: Comprendre les limitations de la table alter ignore avec innodb

La commande alter ignore la table est destinée à aider à supprimer les doublées d'un tableau MySQL en ajoutant un index unique. Cependant, les utilisateurs ont rencontré des erreurs inattendues lors de l'application de cette commande, telles que l'erreur "Violation de la contrainte d'intégrité".

Selon la documentation MySQL, le mot-clé IGNORE devrait permettre d'ignorer les erreurs de clé en double pendant le processus d'altération. Cependant, un bogue apparent dans la version InNODB de MySQL sur certaines versions a été identifié. Ce bogue empêche le mot-clé d'ignore de fonctionner comme prévu.

En tant que solution de contournement, les utilisateurs peuvent envisager de convertir le tableau en myisam, ajoutant l'index unique avec Ignore, puis se convertir en InnoDB. Ce processus est décrit comme suit:

ALTER TABLE table ENGINE MyISAM;
ALTER IGNORE TABLE table ADD UNIQUE INDEX dupidx (field);
ALTER TABLE table ENGINE InnoDB;

Il est important de noter que cette solution peut ne pas être viable si le tableau a des contraintes de clé étrangère, car ces contraintes devront être supprimées avant la conversion, puis ajoutées après.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3