mysql - MySql FK 问题
问题描述
这是我在这里的第一篇文章。我对 MySQL 还是很陌生。我在调试一些涉及外键的代码时遇到问题。每当我取消注释外键并尝试运行代码(使用 XAMPP 和 Netbeans 8.2)时,我都会收到错误消息,提示“外键约束的格式不正确”?我检查了表之间的数据类型以及外键语法并尝试了各种方法,但我完全没有想法(不,不是逗号,我之前已经更正了,问题仍然存在)并且完全受够了。为什么会发生这种情况,我该如何解决?谢谢
DROP TABLE IF EXISTS Staff;
DROP TABLE IF EXISTS Subjects;
DROP TABLE IF EXISTS Results;
DROP TABLE IF EXISTS Students;
CREATE TABLE Students
(
StudentID INT NOT NULL,
Forename VARCHAR(20) NOT NULL,
Surname VARCHAR(20) NOT NULL,
Gender CHAR(1) NOT NULL,
DateOfBirth DATE NOT NULL,
PRIMARY KEY (StudentID)
);
CREATE TABLE Results
(
StudentID INT NOT NULL,
SubjectID CHAR(6) NOT NULL,
Result INT,
PRIMARY KEY (StudentID, SubjectID),
FOREIGN KEY (StudentID)REFERENCES Students(StudentID)
/*FOREIGN KEY (SubjectID)REFERENCES Subjects(SubjectID)*/
);
CREATE TABLE Subjects
(
SubjectID CHAR(6) NOT NULL,
SubjectTitle VARCHAR(50) NOT NULL,
StaffID INT NOT NULL,
PRIMARY KEY (SubjectID)
/*FOREIGN KEY (StaffID) REFERENCES Staff(StaffID)*/
);
CREATE TABLE Staff
(
StaffID INT NOT NULL,
Forename VARCHAR(20) NOT NULL,
Surname VARCHAR(20) NOT NULL,
Post VARCHAR(20) NOT NULL,
PRIMARY KEY (StaffID)
);
解决方案
推荐阅读
- java - 如何在工作台中正确使用@InverseRelationShadowVariable
- python - 使用表示数字的代码制作复杂的算法,并将它们加起来用于表示不同个体的数字
- java - Java如何将数组中的变量分配给另一个数组
- java - 编写一个 Dog 构造函数,它有一个参数,名称,并调用超级构造函数,将名称和动物类型“狗”传递给它。过不了类型
- shell - 是否可以使用 Ansible 中的 shell 模块为 rc 文件提供运行时输入
- rust - 我如何知道 Rodio 源或接收器何时完成?
- go - 删除多维数组中的一个值
- python - 将json数据插入sql,所有字典中的键都不相同,并且某些键不存在
- css - 我无法在进入期间为弹出窗口设置动画,但在退出期间无法设置动画
- decode - IBM 任务路由导出的模板文件 (.ctms) 中的解码字符串