エラー コード: 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 サイトの他の関連記事を参照してください。