ホームページ >データベース >mysql チュートリアル >.sql ファイルをインポートすると、MySQL で「テーブルを作成できません (エラー番号: 150)」というエラーが発生するのはなぜですか?

.sql ファイルをインポートすると、MySQL で「テーブルを作成できません (エラー番号: 150)」というエラーが発生するのはなぜですか?

Linda Hamilton
Linda Hamiltonオリジナル
2025-01-20 02:22:09482ブラウズ

Why Am I Getting a

MySQL エラー: 「テーブルを作成できません (エラー番号: 150)」 - トラブルシューティング ガイド

問題:

テーブル定義を含む SQL ファイルのインポートがテーブルの作成中に失敗し、「テーブル './dbname/data.frm' を作成できません (エラー番号: 150)」というエラーが発生します。

根本原因:

このエラーは、MySQL FOREIGN KEY Constraints ドキュメントで詳しく説明されているように、テーブルの再作成がそれを参照している既存の外部キー制約と競合する場合に発生します。 再作成されたテーブルは、以下の点で元のテーブルと正確に一致する必要があります。

  • 列名とデータ型: 正確に対応することが重要です。
  • 参照キーのインデックス: 外部キー関係に関係する列に必要なインデックスがすべて存在する必要があります。

解決策:

これを解決するには、次の点を注意深く確認してください:

  • 列の整合性: SQL ファイルのテーブル定義内の列名とデータ型が、外部キー制約によって参照されるテーブル内の列名とデータ型と同一であることを確認します。 わずかな不一致 (文字セットの違いなど) であっても、このエラーが発生する可能性があります。
  • インデックスの整合性: 外部キー関係に関係する列のインデックスを再作成します。これらのインデックスが存在し、元の​​テーブルのインデックス仕様と一致していることを確認してください。

これらの点を確認したら、SQL インポートを再試行します。 問題が解決しない場合は、SQL ファイル内の CREATE TABLE ステートメントに矛盾がないか注意深く調べてください。

以上が.sql ファイルをインポートすると、MySQL で「テーブルを作成できません (エラー番号: 150)」というエラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。