DDL в InnoDB не е транзакционен, така че е възможно информацията в .frm файл и речника на InnoDB да е различна. Във вашия случай изглежда, че .frm файлът липсва, но има осиротел запис в речника (е, всъщност записи в няколко речникови SYS_* таблици).
Не можете лесно да изтриете запис от речника. Нуждаете се от съответен .frm файл, така че MySQL да предаде вашия DROP на ниво InnoDB. С RDS не можете да го направите.
Но можете да ИЗПУСКАТЕ цялата база данни. В този случай InnoDB ще премахне всички записи от речника, включително осиротелия.
И така, за да почистите речника си, предлагам следното:
- Спрете целия трафик към MySQL, направете го само за четене
- Създайте временна база данни
adstudio_tmp RENAMEвсички таблици отadstudioкъмadstudio_tmpDROP DATABASE adstudio. В този момент е празен.DROPще изтрие всички записи в речника InnoDB.RENAMEвсички таблици обратно отadstudio_tmpкъмadstudio
След това речникът трябва да е чист и ще можете да създадете своя data_feed_param .
Описах подобен проблем след неуспешна ALTER ТАБЛИЦА . Разгледайте го за повече подробности.