ホームページ >データベース >mysql チュートリアル >MySQL が「外部キー制約の形式が正しくありません」エラーをスローするのはなぜですか?

MySQL が「外部キー制約の形式が正しくありません」エラーをスローするのはなぜですか?

DDD
DDDオリジナル
2025-01-19 05:55:10227ブラウズ

Why Does MySQL Throw a

MySQL の外部キー制約エラーのトラブルシューティング

MySQL で外部キー関係を作成するには、データ型の互換性に細心の注意を払う必要があります。 外部キー列と参照される主キー列の間のデータ型または長さが一致しない場合、「外部キー制約の形式が正しくありません」エラーが発生します。

一般的なシナリオは次のとおりです:

  • Table1: ID データ型の CHAR 列 (主キー) が含まれます。
  • Table2: Table1 の 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 は失敗します。たとえば、IDFromTable1VARCHAR(50) で、IDCHAR(10) の場合、制約は作成されません。

解決策:

解決策は簡単です。外部キー列と参照される列がまったく同じデータ型と長さを共有していることを確認します。 一致するように列定義を調整するとエラーが解決され、外部キー関係が正常に確立されるようになります。

以上がMySQL が「外部キー制約の形式が正しくありません」エラーをスローするのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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