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
RENAME
alle tabellen vanadstudio
naaradstudio_tmp
DROP DATABASE adstudio
. Op dit punt is het leeg. DeDROP
zal alle vermeldingen in het InnoDB-woordenboek wissen.RENAME
alle tabellen terug vanadstudio_tmp
naaradstudio
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.