DDL in InnoDB is niet transactioneel, dus het is mogelijk dat informatie in een .frm-bestand en het InnoDB-woordenboek anders is. In jouw geval lijkt het erop dat het .frm-bestand ontbreekt, maar er is een verweesd record in het woordenboek (nou ja, eigenlijk records in enkele woordenboek SYS_*-tabellen).
U kunt een record niet gemakkelijk uit het woordenboek verwijderen. U hebt een respectievelijk .frm-bestand nodig, zodat MySQL uw DROP doorgeeft aan InnoDB-niveau. Met RDS kun je het niet.
Maar u kunt de hele database DROPPEN. In dat geval zal InnoDB alle records uit het woordenboek verwijderen, inclusief de verweesde.
Dus om je woordenboek op te schonen, raad ik het volgende aan:
- Stop al het verkeer naar MySQL, maak het alleen-lezen
- Maak een tijdelijke database
adstudio_tmp RENAMEalle tabellen vanadstudionaaradstudio_tmpDROP DATABASE adstudio. Op dit punt is het leeg. DeDROPzal alle vermeldingen in het InnoDB-woordenboek wissen.RENAMEalle tabellen terug vanadstudio_tmpnaaradstudio
Hierna zou het woordenboek schoon moeten zijn en kunt u uw data_feed_param maken .
Ik beschreef een soortgelijk probleem na mislukte ALTER TABEL . Bekijk het voor meer details.