无法添加外键约束,引用的外键不为空且类型相同

问题描述 投票:0回答:1

这是我的SQL查询的一小部分,我所指的外键不为空并且具有相同的类型,我哪里出错了?

Create table `Time` (
`Year` year not null,
`Semester` char(2) not null,
primary key (`Year`, `Semester`)
);

Create table `Allocation` (
`Student_ID` int unsigned not null,
`Time_Year` year not null,
`Time_Semester` char(2) not null,
primary key (`Timeslot_Year`, `Timeslot_Semester`, `Student_ID`),
constraint fk_year_allocation foreign key (`Time_Year`) references `Time`(`Year`),
constraint fk_semester_allocation foreign key (`Time_Semester`) references `Time`(`Semester`),
);
sql mysql foreign-keys
1个回答
0
投票

除了修复拼写错误,例如第二个表中的结尾逗号和

primary key (`Timeslot_Year`, `Timeslot_Semester`),

应该是

primary key (`Time_Year`, `Time_Semester`),

您需要在

Semester
列上添加索引

参见示例

© www.soinside.com 2019 - 2024. All rights reserved.