外鍵約束錯誤:1215
嘗試建立具有外鍵約束的資料庫表時,可能會出現錯誤代碼 1215。這表示新增外鍵約束時出現問題,通常是由於資料類型不匹配造成的。
詳細分析:
錯誤訊息表明外鍵列 classLeader 在班級表無法引用學生表中的主鍵學生ID,因為它們的資料類型不符。在提供的資料庫設定中,classLeader 是 VARCHAR(字串)類型,而 StudentID 是 INT(整數)類型。外鍵引用需要匹配的資料類型以進行資料完整性驗證。
替代方案:
要解決該錯誤,應將 classLeader 的資料類型更改為 INT,反之亦然,取決於業務需求。如果在 classLeader 中儲存實際學生姓名至關重要,則可以使用額外的聯接表或在學生表的firstName和lastName列上使用唯一索引來確保資料一致性。
使用外鍵填充表:
具有外鍵約束的表具有特定的填充順序。主表(學生)應在引用表(班級)之前填充,否則將發生外鍵約束衝突。填入班級表時,classLeader 值必須引用學生表中有效的學生 ID。
外鍵的性質:
外鍵不是主鍵或唯一鍵自己。它們用於建立兩個表之間的關係,確保資料完整性保持不變。在這種情況下,classLeader 外鍵確保每個班級都分配有效的 StudentID,從而保持兩個表之間的資料一致性。
以上是為什麼我會收到外鍵約束錯誤 1215?的詳細內容。更多資訊請關注PHP中文網其他相關文章!