エラー コード 1005: 「テーブルを作成できない」問題について
データベースの変更を実行しようとすると、エラー コード 1005 が発生する場合があります、「テーブル '...' を作成できません」というメッセージが表示されます (エラー番号: 150)。このエラーにより、新しいテーブルの作成や既存のテーブルの変更ができなくなります。
根本原因の特定
このエラーの根本原因は通常、間違ったプライマリにあります。主要な参考文献。オンラインで見つかった解決策では問題が解決しない可能性がありますが、このエラーを引き起こす可能性のある既知の原因がいくつかあります。
-
データ型またはサイズの不一致:外部キー関係は、データ型とサイズが正確に一致する必要があります。たとえば、1 つが INT(10) として宣言されている場合、もう 1 つも BIGINT や SMALLINT ではなく、INT である必要があります。
-
Missing Index or Non-Primary Key: 外部キーにリンクされていますフィールドには対応するインデックスが必要であるか、参照されるテーブルの主キーである必要があります。
-
重複した外部キー名前: 外部キーの名前はデータベース内で一意である必要があります。この可能性を排除するには、外部キー名に一意の識別子を追加することを検討してください。
-
MyISAM テーブルとの非互換性: 外部キーは MyISAM テーブルではサポートされていません。リレーションシップに関係する両方のテーブルが InnoDB エンジンを使用していることを確認してください。
-
外部キー列に対する NOT NULL 制約: カスケード ON DELETE SET NULL が指定されている場合、外部キー列をNOT NULL に設定します。
-
文字セットと照合不一致: 主キーの Charset 属性と Collate 属性は、テーブル レベルとフィールド レベルの両方で一致する必要があります。
-
デフォルト値の制限: デフォルト値の設定は避けてください (例:default=0)。外部キー列。
-
インデックスの制限: キー フィールド複合キーで使用される場合は、複合キーの一部としてインデックスがある場合でも、外部キー参照には個別のインデックスが必要です。
-
構文エラーまたは命名エラー: ALTER ステートメントに構文エラーがないか慎重に確認してください。フィールド名のタイプミス。
-
名前制限を超えました: 外部キー名長さは 64 文字を超えることはできません。
追加リソース
この特定のエラー コードの詳細については、次のリソースを参照してください:
- MySQL エラー番号 1005 テーブルを作成できません
以上がMySQL エラー 1005:「テーブルを作成できません」が発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。