DDL i InnoDB er ikke transaktionsbestemt, så det er muligt, at oplysningerne i en .frm-fil og InnoDB-ordbogen er anderledes. I dit tilfælde ser det ud til, at .frm-filen mangler, men der er en forældreløs post i ordbogen (vel, faktisk optager i få ordbog SYS_*-tabeller).
Du kan ikke nemt slette en post fra ordbogen. Du skal bruge en .frm-fil, så MySQL overfører dit DROP til InnoDB-niveau. Med RDS kan du ikke gøre det.
Men du kan SLIPPE hele databasen. I så fald vil InnoDB fjerne alle poster fra ordbogen inklusive den forældreløse.
Så for at rense din ordbog foreslår jeg følgende:
- Stop al trafik til MySQL, gør den skrivebeskyttet
- Opret en midlertidig database
adstudio_tmp RENAMEalle tabeller fraadstudiotiladstudio_tmpDROP DATABASE adstudio. På dette tidspunkt er det tomt.DROPvil slette alle indgange i InnoDB-ordbogen.RENAMEalle tabeller tilbage fraadstudio_tmptiladstudio
Herefter skulle ordbogen være ren, og du vil være i stand til at oprette din data_feed_param .
Jeg beskrev et lignende problem efter mislykket ALTER TABEL . Tjek det for flere detaljer.