PHPMyAdmin にテーブルをインポートしようとしています。データベースには 2 つのテーブルがあり、そのうちの 1 つに「テーブル 3」というラベルが付いています。データベースを PHPMyAdmin にインポートしようとすると、「テーブル 3」というテーブルがすでに存在するかどうかはチェックされません。そのため、PHPMyAdmin は自動的にファイルを「テーブル 3」にインポートしようとしますが、アップロードしているデータベースの列数が既存の「テーブル 3」とはまったく異なるため、インポートは失敗します。
PHPMyAdmin が「テーブル 4」を作成することを期待していましたが、作成されませんでした。インポートする前にテーブルがすでに存在するかどうかを確認する簡単なチェックがソフトウェアに追加されると非常に便利です。他のテーブルは自動的にインポートされましたが、「テーブル 2」は間違っていたため削除しました。そのため、2 つのテーブルと 1 つのテーブルが「テーブル 3」と呼ばれています。
答え1
drop table if exists mytable
インポート ファイルの先頭に追加できます。
CASCADE
また、制約に関する子テーブルを削除するには、前のステートメントにキーワードを追加することもできます。
ドキュメントをご覧ください:ドロップテーブル
インポート ファイルがどこから取得されるかはわかりませんが、PHPMyAdmin では、このステートメントがすでに埋め込まれたエクスポート/インポート ファイルを生成できます。
編集: これを「バグ」とは考えません。PHPMyAdmin は SQL コマンドを使用して SQL ファイルを実行します。これを「バグ」と考えるのではなく、適切な SQL スクリプトを作成することを検討します。