DDL in InnoDB non è transazionale, quindi è possibile che le informazioni in un file .frm e nel dizionario InnoDB siano diverse. Nel tuo caso sembra che manchi il file .frm ma c'è un record orfano nel dizionario (beh, in realtà registra in alcune tabelle SYS_* del dizionario).
Non è possibile eliminare facilmente un record dal dizionario. Hai bisogno di un rispettivo file .frm in modo che MySQL passi il tuo DROP al livello InnoDB. Con RDS non puoi farlo.
Ma puoi DROP dell'intero database. In tal caso InnoDB rimuoverà tutti i record dal dizionario incluso quello orfano.
Quindi, per pulire il tuo dizionario ti suggerisco di seguire:
- Interrompi tutto il traffico verso MySQL, rendilo di sola lettura
- Crea un database temporaneo
adstudio_tmp
RENAME
tutte le tabelle daadstudio
aadstudio_tmp
DROP DATABASE adstudio
. A questo punto è vuoto. IlDROP
cancellerà tutte le voci nel dizionario InnoDB.RENAME
tutte le tabelle daadstudio_tmp
aadstudio
Dopo questo il dizionario dovrebbe essere pulito e sarai in grado di creare il tuo data_feed_param
.
Ho descritto un problema simile dopo ALTER non riuscito TABELLA . Dai un'occhiata per maggiori dettagli.