错误代码一直显示“查询失败:ERROR 3780(HY 000)at line 15:Referencing column 'HorseID' and referenced column 'ID' in foreign key constraint 'lessonschedule_ibfk_1' are incompatible.”
这里有方向,以防你需要一个更好的想法,我正在努力做什么。
“数据库包含一个Horse表,其列为:
- ID -整数,主键
- RegisteredName -可变长度字符串
该数据库包含一个Student表,表中的列为:
- ID -整数,主键
- FirstName -可变长度字符串
- LastName -可变长度字符串
创建第三个表,名为LessonSchedule,其中包含列:
- HorseID -0到6.5万的整数,不能为NULL,外键引用Horse(ID)
- StudentID -0到65000的整数,外键引用Student(ID)
- LessonDateTime -日期/时间,不能为NULL
- 主键是(HorseID,LessonDateTime)
如果从Horse中删除了一行,则具有相同马ID的行应自动从LessonSchedule中删除。
如果从Student中删除了一行,则应在LessonSchedule中自动将相同的学生ID设置为NULL。”
CREATE TABLE Horse (
ID SMALLINT UNSIGNED AUTO_INCREMENT,
RegisteredName VARCHAR(15),
PRIMARY KEY (ID)
);
CREATE TABLE Student (
ID SMALLINT UNSIGNED AUTO_INCREMENT,
FirstName VARCHAR(20),
LastName VARCHAR(30),
PRIMARY KEY (ID)
);
-- Your SQL statements go here
CREATE TABLE LessonSchedule (
HorseID SMALLINT NOT NULL,
StudentID SMALLINT,
LessonDateTime DATETIME NOT NULL,
Primary Key (HorseID, StudentID, LessonDateTime),
Foreign Key (HorseID) REFERENCES Horse(ID),
Foreign Key (StudentID) REFERENCES Student(ID)
);
字符串
到目前为止,我已经尝试过修改外键约束,但是没有成功。我真的不知道该怎么做。
1条答案
按热度按时间2nc8po8w1#
字符串
原因是约束条件不同,您对两个主表的ID都设置了UNSIGNED,下面关联表中的字段也需要一致。