1091: Can't DROP 'x'; check that column/key exists (DROP impossible ; vérifiez que la colonne/clé existe)
MySQLQue signifie cette erreur ?
La colonne, l'index ou la clé étrangère supprimé avec ALTER TABLE n'existe pas. Un objet inexistant ne peut pas être supprimé.
Cause
Nom d'objet inexistant indiqué dans DROP COLUMN/INDEX/FOREIGN KEY ; nom mal orthographié ; objet déjà supprimé ; confusion entre le nom de la clé étrangère et le nom de l'index ; migration exécutée une seconde fois.
Comment la corriger
Vérifiez le nom réel de l'objet : SHOW CREATE TABLE my_table; ou SHOW INDEX FROM my_table; Supprimez-le en utilisant le bon nom. Pour une clé étrangère, utilisez son nom de symbole : ALTER TABLE my_table DROP FOREIGN KEY fk_name; MySQL ne dispose pas de la syntaxe DROP COLUMN IF EXISTS (seul MariaDB la possède) ; dans les migrations idempotentes, vérifiez d'abord l'existence de la colonne via information_schema.columns : SELECT COUNT(*) FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = 'my_table' AND column_name = 'my_column';
Autres entrées pour ce moteur
- 1071Specified key was too long; max key length is 767 bytes (clé trop longue ; longueur maximale de 767 octets)
- 1050Table already exists (la table existe déjà)
- 1051Unknown table 'x' (table inconnue)
- 1093You can't specify target table 'x' for update in FROM clause (table cible de la mise à jour interdite dans la clause FROM)
- 1305PROCEDURE does not exist (la procédure n'existe pas)
- 1227Access denied; you need (at least one of) the PRIVILEGE (accès refusé ; privilège requis)
- 3730Cannot drop table referenced by a foreign key constraint (suppression impossible d'une table référencée par une clé étrangère)