為什麼我會收到 MySQL 錯誤 150:外鍵約束失敗?

DDD
發布: 2024-11-19 09:55:03
原創
601 人瀏覽過

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

MySQL Errno 150: 外鍵約束失敗

當嘗試建立外鍵約束時,使用者可能會遇到 Errorno 150。 外鍵約束透過引用另一個表中的字段,強制引用的字段存在於來源表中來確保資料的完整性。

潛在原因:資料型別差異

一Errorno 150 的常見原因是子表(Sections)中所引用的列與引用表(Instructors)中的主鍵列之間的資料型態不一致。

範例:

create TABLE Instructors (
  ...
  ID int(10),
  ...
);
登入後複製
create table Sections (
  ...
  Instructor_ID varchar(10),
  ...
  FOREIGN KEY (Instructor_ID) REFERENCES Instructors(ID)
  ...
);
登入後複製

在此範例中,Instructors 表中的ID 欄位定義為整數,而Sections 表中的Instructor_ID 欄位定義為字串。這種資料類型的差異會導致外鍵約束無法建立。

解決方案:

要解決此問題,請確保兩個中引用列的資料類型相同表匹配。在上面的範例中,將Instructor_ID 變更為整數資料類型:

create table Sections (
  ...
  Instructor_ID int(10),
  ...
);
登入後複製

其他潛在原因:

  • 主鍵未定義: 引用的表(Instructors)可能未定義主鍵。
  • 資料完整性違規: 子表(Sections)中的現有行可能包含一個外鍵值,該外鍵值引用的表(講師)中不存在。
  • 語法不正確: 確保 FOREIGN KEY 限制的語法正確,包括 ON DELETE 和 ON UPDATE 子句。

以上是為什麼我會收到 MySQL 錯誤 150:外鍵約束失敗?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板