InnoDBのDDLはトランザクションではないため、.frmファイルとInnoDBディクショナリの情報が異なる可能性があります。あなたの場合、.frmファイルが欠落しているように見えますが、ディクショナリに孤立したレコードがあります(実際には、いくつかのディクショナリSYS_ *テーブルにレコードがあります)。
辞書からレコードを簡単に削除することはできません。 MySQLがDROPをInnoDBレベルに渡すように、それぞれの.frmファイルが必要です。 RDSではそれを行うことはできません。
ただし、データベース全体を削除することはできます。その場合、InnoDBは、孤立したレコードを含むすべてのレコードをディクショナリから削除します。
したがって、辞書をきれいにするために、次のことをお勧めします:
- MySQLへのすべてのトラフィックを停止し、読み取り専用にします
- 一時データベースを作成する
adstudio_tmp
-
RENAME
adstudio
のすべてのテーブルadstudio_tmp
へ -
DROP DATABASE adstudio
。この時点では空です。DROP
InnoDBディクショナリのすべてのエントリを消去します。 -
RENAME
adstudio_tmp
から戻ったすべてのテーブルadstudio
へ
この後、辞書はクリーンになり、data_feed_param
を作成できるようになります。 。
失敗した後、同様の問題について説明しました。表 。詳細については、チェックしてください。