试图解决实验室的一个问题,但似乎想不通.错误代码一直显示"查询失败:第15行出现错误3780(HY000):引用列‘HorseID’和引用的列‘ID’在外键约束‘essonSchedule_ibfk_1’中不兼容."
这里有一些指导,以防你需要更好地了解我正在try 做的事情.
"数据库包含一个Horse表,其中包含多个列:
- ID-整数,主键
- RegisteredName-可变长度字符串
该数据库包含一个Student表,其中包含以下各列:
- ID-整数,主键
- FirstName-可变长度字符串
- LastName -可变长度字符串
创建名为LessonSchedule的第三个表,其中包含列:
- HorseID-0到65,000之间的整数,非空,外键引用Horse(ID)
- StudentID -0到65000的整数,外键引用Student(ID)
- LessonDateTime-日期/时间,非空
- 主键是(HorseID,LessonDateTime)
如果从Horse中删除了一行,则应该自动从LessonSchedule中删除具有相同马ID的行.
如果从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)
);
到目前为止,我已经try 处理外键约束,但没有成功.我真的不知道该怎么做.