ホームページ >データベース >mysql チュートリアル >MySQL エラー 1005: テーブルを作成できません (外部キー制約の問題) が発生するのはなぜですか?

MySQL エラー 1005: テーブルを作成できません (外部キー制約の問題) が発生するのはなぜですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-30 12:01:11224ブラウズ

Why Am I Getting MySQL Error 1005: Can't Create Table  (Foreign Key Constraint Issue)?

MySQL 外部キー制約エラー: エラー: エラー 1005: テーブルを作成できません

問題:

試行中データベース スキーマを WAMP サーバーにフォワード エンジニアリングするために、ユーザーは次のような問題に遭遇しました。 「エラー: エラー 1005: テーブルを作成できません」特に「リンク」テーブルです。

解決策:

このエラーは、外部キーに関連する制約違反を示しています。関係。この問題を解決するには:

  1. 外部キー制約を確認します: ソリューションで提供されている SQL クエリを実行します:

    SELECT
        constraint_name,
        table_name
    FROM
        information_schema.table_constraints
    WHERE
        constraint_type = 'FOREIGN KEY'
    AND table_schema = DATABASE()
    ORDER BY
        constraint_name;

    結果を調べてください「リンク」に関連付けられた外部キー制約を特定します。 table.

  2. 制約名の確認: 「Link」テーブルの外部キー制約が、他のテーブルで定義されている制約と名前を共有していないことを確認します。存在する場合は、制約の名前を一意の名前に変更します。
  3. 列参照の確認: 外部キー制約で参照されている列が親テーブルに存在し、互換性のあるデータ型であることを確認します。
  4. 参照テーブルの確認: 外部キー制約で参照される親テーブルが実際に存在することを確認します。データベース。
  5. 構文の再確認: 「リンク」テーブルの作成に使用された SQL スクリプトを確認し、構文エラーがないことを確認します。
  6. 列が正しいことを確認してください。順序: 「リンク」テーブルの列の順序が親の列の順序と一致していることを確認してください。
  7. MySQL サーバーを再起動します: 場合によっては、MySQL サーバーを再起動すると問題が解決することがあります。
  8. エラー ログを確認する: MySQL を確認してください制約違反の詳細については、エラー ログを参照してください。

追加ヒント:

  • トラブルシューティングを容易にするために、わかりやすい制約名を使用します。
  • エラーを最小限に抑えるために、データベース モデリング ツールを使用してスキーマ スクリプトを生成することを検討してください。
  • テスト運用環境にデプロイする前に、スキーマを別の開発データベースに保存します。

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

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