DBAtlas · Atlas für Datenbankbetrieb

1091: Can't DROP 'x'; check that column/key exists (DROP nicht möglich; Spalte/Schlüssel existiert nicht)

MySQL

Was bedeutet das?

Die mit ALTER TABLE zu löschende Spalte, der Index oder der Foreign Key existiert nicht. Ein nicht existierendes Objekt kann nicht gelöscht werden.

Ursache

Angabe eines nicht existierenden Objektnamens in DROP COLUMN/INDEX/FOREIGN KEY; ein falsch geschriebener Name; das Objekt wurde bereits gelöscht; Verwechslung des Foreign-Key-Namens mit dem Indexnamen; eine zum zweiten Mal ausgeführte Migration.

Lösung

Prüfe den tatsächlichen Namen des Objekts: SHOW CREATE TABLE my_table; oder SHOW INDEX FROM my_table; Lösche es mit dem richtigen Namen. Verwende für einen Foreign Key seinen Symbolnamen: ALTER TABLE my_table DROP FOREIGN KEY fk_name; MySQL hat keine Syntax DROP COLUMN IF EXISTS (nur MariaDB); prüfe in idempotenten Migrationen zuerst über information_schema.columns, ob die Spalte existiert: SELECT COUNT(*) FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = 'my_table' AND column_name = 'my_column';

In DBAtlas öffnen →

Weitere Einträge zu dieser Datenbank