首頁  >  文章  >  資料庫  >  為什麼我會收到 MySQL 外鍵錯誤 1215:「無法新增外鍵約束」?

為什麼我會收到 MySQL 外鍵錯誤 1215:「無法新增外鍵約束」?

Susan Sarandon
Susan Sarandon原創
2024-11-25 14:08:13824瀏覽

Why Am I Getting MySQL Foreign Key Error 1215:

MySQL 外鍵錯誤:1215 故障排除

嘗試在MySQL 中新增外鍵約束時,您可能會遇到錯誤代碼: 1215,指示「無法新增外鍵約束(外鍵)。」此錯誤通常是由於資料類型不符或結構問題造成的。

資料型別不符

一個可能的原因是引用外鍵的欄位之間的資料型別不符和所引用的資料列。例如,如果班級表中的 classLeader 欄位具有 VARCHAR(255) 資料類型,而學生表中引用的 StudentID 欄位是 INT,則外鍵約束將會失敗。兩列的資料型態必須相同。

結構問題

如果資料型別匹配,問題可能在於表格間的結構差異。值得注意的是:

  • 所引用的表(本例為學生)必須存在。
  • 所引用的欄位(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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn