ホームページ >データベース >mysql チュートリアル >テーブルは存在しますが、存在しません: この MySQL のパラドックスを解決するにはどうすればよいですか?
シュレディンガーの MySQL テーブル: 存在と非存在の物語
MySQL がテーブルの存在を報告するにもかかわらず、その作成を拒否するという矛盾に遭遇することは当惑する問題。この記事は、このシュレディンガーのテーブルのジレンマの背後にある謎を解明することを目的としています。
元の問い合わせで説明されているように、CREATE TABLE を実行すると「テーブルはすでに存在します」エラーが発生し、DROP TABLE は「不明なテーブル」を返します。この宇宙的な困難はユーザーを悩ませ、作成も削除もできない形のないテーブルを残してしまうことになります。
ほとんどの場合、犯人は孤立したテーブル ファイルの存在にあります。 MySQL は、テーブル定義用の .frm と、テーブル データ用の .MYI および .MYD (MYISAM)、または .ibd (InnoDB) の 2 種類のファイルでデータを管理します。これらのファイルの 1 つが失われると、テーブルは半分形成されたファントムとなり、MySQL の応答の不一致につながります。
このシュレーディンガーのテーブルの難題を解決するには、孤立したファイルをデータ ディレクトリから手動で見つけて削除します。 InnoDB を使用する場合は、.frm ファイルと .ibd ファイルの両方が存在することを確認してください。一方、MYISAM テーブルには、.frm、.MYI、および .MYD ファイルの完全な 3 つのファイルが必要です。
孤立したファイルが削除されると、パラドックスは解消されます。テーブルは期待どおりに作成または削除できます。このようにして、とらえどころのないシュレディンガー表が解決され、MySQL の領域では、存在と非存在が時々複雑に絡み合う可能性があることが実証されました。
以上がテーブルは存在しますが、存在しません: この MySQL のパラドックスを解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。