DDL v InnoDB není transakční, takže je možné, že se informace v souboru .frm a ve slovníku InnoDB liší. Ve vašem případě to vypadá, že soubor .frm chybí, ale ve slovníku je osamocený záznam (no, ve skutečnosti záznamy v několika tabulkách slovníku SYS_*).
Záznam ze slovníku jednoduše nevymažete. Potřebujete příslušný .frm soubor, aby MySQL předalo váš DROP na úroveň InnoDB. S RDS to nemůžete udělat.
Ale můžete DROP celou databázi. V takovém případě InnoDB odstraní všechny záznamy ze slovníku včetně osiřelého.
Chcete-li tedy vyčistit svůj slovník, navrhuji následující:
- Zastavte veškerý provoz na MySQL, nastavte jej pouze pro čtení
- Vytvořte dočasnou databázi
adstudio_tmp
RENAME
všechny tabulky zadstudio
naadstudio_tmp
DROP DATABASE adstudio
. V tuto chvíli je prázdný.DROP
vymaže všechny položky ve slovníku InnoDB.RENAME
všechny tabulky zpět zadstudio_tmp
doadstudio
Poté by měl být slovník čistý a budete moci vytvořit svůj data_feed_param
.
Popsal jsem podobný problém po neúspěšném ALTER TABULKA . Podívejte se na další podrobnosti.