1091: Can't DROP 'x'; check that column/key exists
MySQLNe demek?
ALTER TABLE ile silinmeye çalışılan sütun, index ya da foreign key mevcut değil. Var olmayan bir nesne düşürülemez.
Neden olur?
DROP COLUMN/INDEX/FOREIGN KEY ile var olmayan bir nesne adı verilmesi; adın yanlış yazılması; nesnenin daha önce silinmiş olması; foreign key adı ile index adının karıştırılması; migrasyonun ikinci kez çalışması.
Nasıl çözülür?
Nesnenin gerçek adını doğrulayın: SHOW CREATE TABLE tablo; ya da SHOW INDEX FROM tablo; Doğru adı kullanarak silin. Foreign key için sembol (symbol) adını kullanın: ALTER TABLE tablo DROP FOREIGN KEY fk_ad; MySQL'de DROP COLUMN IF EXISTS sözdizimi yoktur (yalnızca MariaDB'de vardır); idempotent migrasyonlarda önce information_schema.columns ile sütunun varlığını kontrol edin: SELECT COUNT(*) FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = 'tablo' AND column_name = 'sutun';
Aynı motorda diğer kayıtlar
- 1071Specified key was too long; max key length is 767 bytes
- 1050Table already exists
- 1051Unknown table 'x'
- 1093You can't specify target table 'x' for update in FROM clause
- 1305PROCEDURE does not exist
- 1227Access denied; you need (at least one of) the PRIVILEGE
- 3730Cannot drop table referenced by a foreign key constraint