DDL w InnoDB nie jest transakcyjny, więc możliwe, że informacje w pliku .frm i słowniku InnoDB są inne. W twoim przypadku wygląda na to, że brakuje pliku .frm, ale w słowniku jest osierocony rekord (cóż, faktycznie rekordy w kilku słownikowych tabelach SYS_*).
Nie można łatwo usunąć rekordu ze słownika. Potrzebujesz odpowiedniego pliku .frm, aby MySQL przekazał Twój DROP do poziomu InnoDB. Z RDS nie możesz tego zrobić.
Ale możesz DROP całą bazę danych. W takim przypadku InnoDB usunie wszystkie rekordy ze słownika, w tym jeden osierocony.
Tak więc, aby wyczyścić słownik, sugeruję wykonanie następujących czynności:
- Zatrzymaj cały ruch do MySQL, ustaw go tylko do odczytu
- Utwórz tymczasową bazę danych
adstudio_tmp RENAMEwszystkie tabele zadstudiodoadstudio_tmpDROP DATABASE adstudio. W tym momencie jest pusty.DROPusunie wszystkie wpisy w słowniku InnoDB.RENAMEwszystkie tabele z powrotem zadstudio_tmpdoadstudio
Po tym słownik powinien być czysty i będziesz mógł utworzyć swój data_feed_param .
Opisałem podobny problem po nieudanej ALTER TABELA . Sprawdź to, aby uzyskać więcej informacji.