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 RENAMEalle Tabellen ausadstudiozuadstudio_tmpDROP DATABASE adstudio. An dieser Stelle ist es leer. DerDROPlöscht alle Einträge im InnoDB-Wörterbuch.RENAMEalle Tabellen zurück vonadstudio_tmpzuadstudio
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.