DDL in InnoDB ist nicht transaktional, daher ist es möglich, dass Informationen in einer .frm-Datei und im InnoDB-Wörterbuch unterschiedlich sind. In Ihrem Fall sieht es so aus, als ob die .frm-Datei fehlt, aber es gibt einen verwaisten Datensatz im Wörterbuch (naja, tatsächlich Datensätze in einigen SYS_*-Tabellen des Wörterbuchs).
Sie können einen Eintrag nicht einfach aus dem Wörterbuch löschen. Sie benötigen eine entsprechende .frm-Datei, damit MySQL Ihren DROP an die InnoDB-Ebene weitergibt. Mit RDS geht das nicht.
Aber Sie können die gesamte Datenbank löschen. In diesem Fall entfernt InnoDB alle Datensätze aus dem Wörterbuch, einschließlich des verwaisten.
Also, um Ihr Wörterbuch zu bereinigen, schlage ich Folgendes vor:
- Stoppen Sie den gesamten Datenverkehr zu MySQL, machen Sie es schreibgeschützt
- Erstellen Sie eine temporäre Datenbank
adstudio_tmp
RENAME
alle Tabellen ausadstudio
zuadstudio_tmp
DROP DATABASE adstudio
. An dieser Stelle ist es leer. DerDROP
löscht alle Einträge im InnoDB-Wörterbuch.RENAME
alle Tabellen zurück vonadstudio_tmp
zuadstudio
Danach sollte das Wörterbuch sauber sein und Sie können Ihre data_feed_param
erstellen .
Ich habe ein ähnliches Problem nach erfolglosem ALTER beschrieben TABELLE . Weitere Einzelheiten finden Sie hier.