Maison > Article > base de données > Pourquoi ALTER IGNORE TABLE entraîne-t-il toujours des violations des contraintes d'intégrité dans MySQL ?
MySQL ALTER IGNORE TABLE provoque une violation de contrainte d'intégrité
La modification d'une table MySQL à l'aide de ALTER IGNORE TABLE pour supprimer les valeurs en double tout en ajoutant une clé unique devrait éviter les erreurs de clé en double. Cependant, les utilisateurs ont rencontré l'erreur « Violation de la contrainte d'intégrité » malgré l'utilisation de l'indicateur IGNORE.
Explication :
La documentation MySQL indique que IGNORE demande à la base de données d'ignorer les doublons. lignes sur des clés uniques lors de l'opération ALTER TABLE. Mais dans certains cas, notamment avec les tables InnoDB, il semble y avoir un bug dans l'extension IGNORE qui entraîne des violations de contraintes d'intégrité.
Solution :
Pour résoudre le problème, envisagez la solution de contournement suivante :
Passer au moteur MyISAM :
Ajouter un index unique avec IGNORE :
Reconvertir en InnoDB :
Remarque :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!