DBAtlas · Atlas d'exploitation des bases de données

1091: Can't DROP 'x'; check that column/key exists (DROP impossible ; vérifiez que la colonne/clé existe)

MySQL

Que 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';

Ouvrir dans DBAtlas →

Autres entrées pour ce moteur