ホームページ > データベース > mysql チュートリアル > MySQL 外部キー エラー 1215: 「外部キー制約を追加できません」が発生するのはなぜですか?

MySQL 外部キー エラー 1215: 「外部キー制約を追加できません」が発生するのはなぜですか?

Susan Sarandon
リリース: 2024-11-25 14:08:13
オリジナル
890 人が閲覧しました

Why Am I Getting MySQL Foreign Key Error 1215:

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

MySQL に外部キー制約を追加しようとすると、エラー コード: 1215 が発生する場合があります。 「外部キー制約(外部キー)を追加できません。」このエラーは通常、データ型の不一致または構造的な問題が原因で発生します。

データ型の不一致

考えられる原因の 1 つは、外部キーを参照する列間のデータ型の不一致です。および参照された列。たとえば、クラス テーブルの classLeader 列のデータ型が VARCHAR(255) であり、student テーブルで参照される StudentID 列が INT である場合、外部キー制約は失敗します。両方の列のデータ型は同一である必要があります。

構造の問題

データ型が一致する場合、問題はテーブル間の構造の不一致にある可能性があります。特に注意すべき点:

  • 参照されるテーブル (この場合はstudent) が存在する必要があります。
  • 参照される列 (studentID) が参照されるテーブル内に存在する必要があります。
  • 参照される列 (studentID) は、参照されるテーブルの主キーまたは一意のキーである必要があります (ただし、MySQL ではインデックスが使用される場合があります)。十分です)。

-- Create student table
CREATE TABLE student (
  studentID int NOT NULL AUTO_INCREMENT,
  lastName varchar(255),
  firstName varchar(255),
  PRIMARY KEY (studentID)
);

-- Create class table
CREATE TABLE class (
  classID int NOT NULL AUTO_INCREMENT,
  nameClass varchar(255),
  classLeader int,  -- Change to INT to match studentID type
  FOREIGN KEY (classLeader) REFERENCES student(studentID),
  PRIMARY KEY (classID)
);
ログイン後にコピー

外部キーとキー

外部キーは考慮されませんテーブル内の行を一意に識別する従来のキー (主キーや一意キーなど)。代わりに、その主な目的は、参照整合性を確保し、テーブル間の関係を維持することです。外部キーを強制することで、不整合や孤立したデータを防ぐことができます。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート