ホームページ > データベース > mysql チュートリアル > MySQL テーブルが存在するのに存在しないのはなぜですか?

MySQL テーブルが存在するのに存在しないのはなぜですか?

Linda Hamilton
リリース: 2024-10-29 21:57:29
オリジナル
455 人が閲覧しました

 Why Does My MySQL Table Exist Yet Doesn't Exist?

シュレディンガーの MySQL テーブル: 存在の謎

テーブルを作成または変更しようとしているときに、悪名高い「テーブルは既に存在します」エラーが発生しました。それを削除しようとすると、「未知のテーブル」という難題に直面するだけで、複雑なジレンマが生じます。テーブルが存在しているように見えるにもかかわらず、操作をすべて回避するというこの矛盾した状態は、データベース管理者を当惑させる可能性があります。

この謎めいた現象の根本は、データ ディレクトリ内のファイルの欠落または破損にあります。 innodb_file_per_table を有効にして InnoDB を使用する場合、各テーブルは 2 つのファイルで表されます。1 つはテーブル定義を含む .frm ファイル、もう 1 つはそのデータを保存する .ibd ファイルです。 MYISAM テーブルの場合、ファイル トリオは .frm、.MYI、および .MYD ファイルで構成されます。

そのようなファイルが紛失したり破損したりすると、システムは競合する動作を示す可能性があります。たとえば、テーブル定義ファイルが残る可能性があり、作成しようとすると「テーブルはすでに存在します」というエラーが発生します。ただし、データ ファイルまたはインデックス ファイルが存在しない場合、削除しようとすると「不明なテーブル」エラーが発生します。

この問題を解決するには、単純ですが細心の注意を払って解決策を講じます。つまり、孤立したファイルを見つけて手動で削除します。 。不足している .frm、.ibd、.MYI、または .MYD ファイルを削除することで、不一致を修正し、期待どおりの動作を復元できます。

つまり、MySQL のシュレーディンガー領域では、テーブルは存在するものの、実際にはテーブルが存在しません。ではなく、このパラドックスを解決する鍵は、データ ディレクトリを注意深く調べて、必要なファイルがすべて存在することを確認することにあります。孤立したファイルを削除することで、データベースに調和を取り戻し、シュレーディンガーの表の複雑な謎に別れを告げることができます。

以上がMySQL テーブルが存在するのに存在しないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート