1091: Can't DROP 'x'; check that column/key exists (DROP nicht möglich; Spalte/Schlüssel existiert nicht)
MySQLWas 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';
Weitere Einträge zu dieser Datenbank
- 1071Specified key was too long; max key length is 767 bytes (Schlüssel zu lang; maximal 767 Bytes)
- 1050Table already exists (Tabelle existiert bereits)
- 1051Unknown table 'x' (unbekannte Tabelle)
- 1093You can't specify target table 'x' for update in FROM clause (Zieltabelle des Updates nicht in FROM-Klausel erlaubt)
- 1305PROCEDURE does not exist (Prozedur existiert nicht)
- 1227Access denied; you need (at least one of) the PRIVILEGE (Zugriff verweigert; Berechtigung erforderlich)
- 3730Cannot drop table referenced by a foreign key constraint (von Foreign Key referenzierte Tabelle kann nicht gelöscht werden)