1553: Cannot drop index needed in a foreign key constraint (impossible de supprimer un index requis par une contrainte de clé étrangère)
MySQLQue signifie cette erreur ?
Vous essayez de supprimer un index requis par une contrainte de clé étrangère. InnoDB ne permet pas de retirer l'index sur lequel repose une FK.
Cause
Dans InnoDB, chaque clé étrangère exige un index sur sa ou ses colonnes de référence. La suppression de cet index avec DROP INDEX est refusée car elle laisserait la contrainte FK sans support. Cela survient généralement lors d'une réorganisation de table (nettoyage d'index).
Comment la corriger
Supprimez d'abord la contrainte de clé étrangère, puis l'index : ALTER TABLE my_table DROP FOREIGN KEY fk_name; puis DROP INDEX idx_name ON my_table; Si nécessaire, recréez la FK de sorte qu'elle repose sur un autre index approprié. Pour lister les FK existantes : SELECT constraint_name, table_name FROM information_schema.key_column_usage WHERE referenced_table_name IS NOT NULL;
Autres entrées pour ce moteur
- 1129Host 'host' is blocked because of many connection errors (l'hôte 'host' est bloqué en raison de nombreuses erreurs de connexion)
- 1194Table 'name' is marked as crashed and should be repaired (la table 'name' est marquée comme endommagée et doit être réparée)
- 1615Prepared statement needs to be re-prepared (l'instruction préparée doit être préparée à nouveau)
- 3948Loading local data is disabled; this must be enabled on both the client and server sides (le chargement de données locales est désactivé ; il doit être activé côté client et côté serveur)
- 1075Incorrect table definition; there can be only one auto column and it must be defined as a key (définition de table incorrecte : une seule colonne auto, qui doit être définie comme clé)
- 1055Expression not in GROUP BY (only_full_group_by) (expression absente du GROUP BY)
- 1267Illegal mix of collations