ホームページ >データベース >mysql チュートリアル >MySQL エラー コード 1005: テーブルを作成できませんが表示されるのはなぜですか?

MySQL エラー コード 1005: テーブルを作成できませんが表示されるのはなぜですか?

DDD
DDDオリジナル
2024-12-18 15:03:15438ブラウズ

Why Am I Getting MySQL Error Code 1005: Can't Create Table?

エラー コード: 1005。テーブルを作成できません: 詳細な分析

次のスクリプト:

ALTER TABLE sira_no
    ADD CONSTRAINT METAL_KODU FOREIGN KEY(METAL_KODU)
    REFERENCES metal_kod(METAL_KODU)
    ON DELETE SET NULL
    ON UPDATE SET NULL ;

この背後にある根本的な理由を理解することが重要ですerror.

エラー メッセージ「テーブル 'ebs.#sql-f48_1a3' を作成できません (エラー番号: 150)」は通常、主キー参照に問題があることを示します。これを解決するには、次のことを確認することが重要です。

  • キー フィールドのデータ型とサイズが同一であること。
    型とサイズが正確に一致していることを確認する。たとえば、INT(10) と BIGINT には互換性がありません。同様に、SIGNED フィールドと UNSIGNED フィールドもそれに応じて一致する必要があります。
  • 関連するフィールドには適切なインデックスがあります。
    外部キーの関係には、参照されるフィールドのインデックスまたは主キーが必要です。参照されるフィールドにインデックスがない場合は、インデックスを作成して制約を確立します。
  • 外部キー名は一意です:
    外部キー名が重複すると、エラーが発生する可能性があります。外部キー名がデータベース内で一意であることを確認するには、末尾にランダムな文字を追加します。
  • テーブルは InnoDB タイプです:
    外部キー制約では、関係する両方のテーブルが InnoDB である必要があります。テーブル。 MyISAM テーブルは外部キーをサポートできません。
  • カスケード オプションとフィールドの NULL 可能性は互換性があります:
    ON DELETE または ON UPDATE アクションが CASCADE に設定されている場合、参照されるフィールドは NOT を持つことができませんNULL 制約。
  • 文字セットと照合順序のオプションは次のとおりです。一貫性:
    関係内のテーブルとキー列の両方で、Charset パラメーターと照合順序パラメーターが同一であることを確認します。
  • 外部キー列のデフォルト値は存在しません:
    外部キー列にはデフォルト値を定義しないでください。
  • 個別のインデックスを持つ複合キーは必須です:
    参照フィールドが複合キーの一部である場合、複合インデックスとは別に独自のインデックスが必要です。

リストされた原因を徹底的に確認し、問題があれば対処します。不一致はエラー コード 1005 を解決する必要があります。詳細については、MySQL のドキュメント「エラー番号 1005: 作成できません」を参照してください。テーブル。

以上がMySQL エラー コード 1005: テーブルを作成できませんが表示されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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