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

MySQL の「テーブルを作成できません」エラー (エラー番号: 150) が発生するのはなぜですか?

Susan Sarandon
Susan Sarandonオリジナル
2025-01-20 02:19:09629ブラウズ

Why Am I Getting a MySQL

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

SQL スクリプトを使用してテーブルを作成すると、「MySQL: テーブルを作成できません (エラー番号: 150)」というエラーが発生する場合があります。これは .sql ファイルのインポート中に頻繁に発生し、テーブル作成の失敗につながります。

根本原因:

エラー「エラー 150: 外部キー制約が正しくありません」は、テーブル定義と参照する外部キー制約の間の不一致を示します。 新しく作成されたテーブルは外部キーの要件を満たしていません。

解決策:

MySQL の FOREIGN KEY ドキュメントには次のように記載されています: 再作成されたテーブルは、それを参照する外部キー制約と正確に一致する必要があります。 つまり、参照されるキーの列名、データ型、インデックスが同一であることが重要です。 これらの条件を満たさない場合、エラー 1005 が発生し、メッセージにはエラー 150 が示され、外部キー制約が正しく形成されていないことを示します。

したがって:

  • 列名とデータ型は、参照される制約と一致する必要があります。
  • 参照されるキーのインデックスは必須です。
  • テーブル定義は外部キー制約に違反してはなりません。

デバッグ手順:

  1. 列定義の検証: 新しいテーブルの列名とデータ型が元のスキーマの列名とデータ型を反映していることを確認します。
  2. インデックス チェック: 元のテーブルと新しいテーブルの両方で参照キーのインデックスが存在することを確認します。
  3. 外部キー制約の確認: テーブルを参照している外部キー制約を注意深く調べてください。 それらが正確に定義され、参照テーブル内の正しい列を指していることを確認してください。
  4. .sql スクリプト検査: .sql ファイルが完全であること、およびテーブル定義や制約に影響を与える可能性のある構文エラーがないことを徹底的にチェックします。

これらの潜在的な不一致を修正することで、テーブル定義が参照元の外部キー制約と一致し、「エラー 150: 外部キー制約が正しくありません」問題が解決されます。

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

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