ホームページ  >  記事  >  データベース  >  MySQL エラー 150: 外部キー制約の失敗が発生するのはなぜですか?

MySQL エラー 150: 外部キー制約の失敗が発生するのはなぜですか?

DDD
DDDオリジナル
2024-11-19 09:55:03617ブラウズ

Why Am I Getting MySQL Error 150: Foreign Key Constraint Failure?

MySQL エラー番号 150: 外部キー制約の失敗

外部キー制約を作成しようとすると、エラー番号 150 が発生する場合があります。外部キー制約は、別のテーブルのフィールドを参照し、参照先のフィールドが強制的に存在するようにすることで、データの整合性を確保します。ソーステーブル。

潜在的な原因: データ型の不一致

エラー番号 150 の一般的な原因の 1 つは、子テーブル内の参照される列間のデータ型の不一致です (セクション) と参照テーブルの主キー列(Instructors).

例:

create TABLE Instructors (
  ...
  ID int(10),
  ...
);
create table Sections (
  ...
  Instructor_ID varchar(10),
  ...
  FOREIGN KEY (Instructor_ID) REFERENCES Instructors(ID)
  ...
);

この例では、Instructors テーブルの ID 列は整数として定義され、Instructor_ID はSections テーブルの列は文字列として定義されます。このデータ型の違いにより、外部キー制約が確立されません。

解決策:

この問題を解決するには、両方の参照列のデータ型が同じであることを確認します。テーブルが一致します。上記の例では、Instructor_ID を整数データ型に変更します:

create table Sections (
  ...
  Instructor_ID int(10),
  ...
);

その他の潜在的な原因:

  • 主キーが定義されていません: 参照されるテーブル (Instructors) には主キーがない可能性があります定義されました。
  • データ整合性違反: 子テーブル (セクション) の既存の行には、参照先テーブル (インストラクター) に存在しない外部キー値が含まれている可能性があります。
  • 構文が正しくありません: FOREIGN KEY 制約の構文が正しいことを確認してください。 ON DELETE 句と ON UPDATE 句。

以上がMySQL エラー 150: 外部キー制約の失敗が発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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