DBAtlas · Atlas de operações de banco de dados

1091: Can't DROP 'x'; check that column/key exists

MySQL

O que significa?

A coluna, o índice ou a foreign key que está sendo removida com ALTER TABLE não existe. Não é possível remover um objeto inexistente.

Por que acontece?

Informar um nome de objeto inexistente em DROP COLUMN/INDEX/FOREIGN KEY; um nome grafado incorretamente; o objeto já removido; confusão entre o nome da foreign key e o nome do índice; uma migration executada uma segunda vez.

Como resolver

Verifique o nome real do objeto: SHOW CREATE TABLE my_table; ou SHOW INDEX FROM my_table; Remova-o usando o nome correto. Para uma foreign key, use o nome do seu símbolo: ALTER TABLE my_table DROP FOREIGN KEY fk_name; O MySQL não tem a sintaxe DROP COLUMN IF EXISTS (apenas o MariaDB tem); em migrations idempotentes, verifique primeiro se a coluna existe via information_schema.columns: SELECT COUNT(*) FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = 'my_table' AND column_name = 'my_column';

Abrir no DBAtlas →

Mais entradas deste banco