DBAtlas · Atlas de operaciones de bases de datos

1091: Can't DROP 'x'; check that column/key exists (no se puede hacer DROP; compruebe que existe la columna/clave)

MySQL

¿Qué significa?

La columna, el índice o la clave foránea que se quiere eliminar con ALTER TABLE no existe. No se puede eliminar un objeto inexistente.

¿Por qué ocurre?

Indicar un nombre de objeto inexistente en DROP COLUMN/INDEX/FOREIGN KEY; un nombre mal escrito; el objeto ya eliminado; confundir el nombre de la clave foránea con el del índice; una migración ejecutada por segunda vez.

Cómo solucionarlo

Verifique el nombre real del objeto: SHOW CREATE TABLE my_table; o SHOW INDEX FROM my_table; Elimínelo usando el nombre correcto. Para una clave foránea use su nombre de símbolo: ALTER TABLE my_table DROP FOREIGN KEY fk_name; MySQL no tiene la sintaxis DROP COLUMN IF EXISTS (solo MariaDB); en migraciones idempotentes, compruebe primero que la columna existe mediante information_schema.columns: SELECT COUNT(*) FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = 'my_table' AND column_name = 'my_column';

Abrir en DBAtlas →

Más entradas de este motor