[英]MySQL: Cannot add foreign key constraint Error
第一個表是LocationTime表,第二個表是Student表。 我正在使用“ ALTER”添加外鍵。 但是我得到下面的錯誤。 為什么會出現錯誤?
無法添加外鍵約束錯誤
+---------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| CourseN | varchar(3) | NO | PRI | NULL | |
| Quarter | varchar(11) | NO | PRI | NULL | |
| DayTime | varchar(7) | NO | PRI | NULL | |
| RoomN | varchar(3) | YES | | NULL | |
+---------+-------------+------+-----+---------+-------+
+-------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+-------------+------+-----+---------+-------+
| studentName | varchar(15) | NO | PRI | NULL | |
| CourseN | varchar(3) | NO | PRI | NULL | |
| Quarter | varchar(11) | NO | PRI | NULL | |
+-------------+-------------+------+-----+---------+-------+
ALTER TABLE Student
ADD FOREIGN KEY (Quarter) REFERENCES LocationTime (Quarter)
ON UPDATE CASCADE ON DELETE SET NULL;
問題在於, Quarter
是組合鍵的成員( CouresN
, Quarter
和DayTime
構成LocationTime
表的主鍵)。 不能在僅與Quarter
相關聯的另一個表上聲明外鍵約束,它還應包括組合鍵的其他部分。 解決您的問題的一種可能方法是將其他列聲明為您的主鍵。 此外,我不明白為什么不使用具有自動生成的INT(IDENTITY)作為主鍵的列或具有自動生成的GUID的列的原因。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.