DDL i InnoDB är inte transaktionsbaserat så det är möjligt att informationen i en .frm-fil och InnoDB-ordboken är annorlunda. I ditt fall ser det ut som att .frm-filen saknas men det finns en föräldralös post i ordboken (tja, faktiskt poster i några ordbok SYS_*-tabeller).
Du kan inte enkelt radera en post från ordboken. Du behöver en respektive .frm-fil så att MySQL skickar din DROP till InnoDB-nivå. Med RDS kan du inte göra det.
Men du kan SLAPPA hela databasen. I så fall kommer InnoDB att ta bort alla poster från ordboken inklusive den föräldralösa.
Så för att rensa din ordbok föreslår jag följande:
- Stoppa all trafik till MySQL, gör den skrivskyddad
- Skapa en tillfällig databas
adstudio_tmp
RENAME
alla tabeller frånadstudio
tilladstudio_tmp
DROP DATABASE adstudio
. Vid det här laget är det tomt.DROP
kommer att radera alla poster i InnoDB-ordboken.RENAME
alla tabeller tillbaka frånadstudio_tmp
tilladstudio
Efter detta bör ordboken vara ren och du kommer att kunna skapa din data_feed_param
.
Jag beskrev ett liknande problem efter misslyckade ALTER TABELL . Kolla in den för mer information.