ホームページ >データベース >mysql チュートリアル >MySQL が「外部キー制約の形式が正しくありません」エラーをスローするのはなぜですか?
MySQL の外部キー制約エラーのトラブルシューティング
MySQL で外部キー関係を作成するには、データ型の互換性に細心の注意を払う必要があります。 外部キー列と参照される主キー列の間のデータ型または長さが一致しない場合、「外部キー制約の形式が正しくありません」エラーが発生します。
一般的なシナリオは次のとおりです:
ID
データ型の CHAR
列 (主キー) が含まれます。IDFromTable1
列を参照する ID
列が含まれています。次のクエリを使用して外部キー制約を作成しようとしています:
<code class="language-sql">ALTER TABLE `table2` ADD CONSTRAINT `FK1` FOREIGN KEY (`IDFromTable1`) REFERENCES `table1` (`ID`) ON UPDATE CASCADE ON DELETE CASCADE;</code>
と IDFromTable1
のデータ型または長さが異なる場合、ID
は失敗します。たとえば、IDFromTable1
が VARCHAR(50)
で、ID
が CHAR(10)
の場合、制約は作成されません。
解決策:
解決策は簡単です。外部キー列と参照される列がまったく同じデータ型と長さを共有していることを確認します。 一致するように列定義を調整するとエラーが解決され、外部キー関係が正常に確立されるようになります。
以上がMySQL が「外部キー制約の形式が正しくありません」エラーをスローするのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。