外键约束错误

时间:2018-01-23 02:27:52

标签: mysql sql foreign-keys

我在代码中记下了主键和外键,但它显示错误:

  

外键约束形成错误

有人可以帮我解决我的问题吗?

这就是我写的:

USE sgschool; 
CREATE TABLE StudentSubject(studentno INT(5) NOT NULL,
  subjectID INT(10) NOT NULL,
  CONSTRAINT schSubjectIDFK FOREIGN KEY(SubjectID) REFERENCES Subjects (subjectID), 
  CONSTRAINT schStudentNoFK FOREIGN KEY(studentNo) REFERENCES student(StudentID),
  PRIMARY KEY(studentNo,subjectID));

1 个答案:

答案 0 :(得分:0)

将约束作为表创建的一部分包含在内时,您不需要包含约束列的名称,因为约束是列定义的一部分。

试试这个:

    studentno INT (5) NOT NULL CONSTRAINT schStudentNoFK FOREIGN KEY REFERENCES student(StudentID),
    subjectID INT (10) NOT NULL CONSTRAINT schSubjectIDFK FOREIGN KEY REFERENCES Subjects(subjectID),

如果在创建表之后添加约束,则需要告诉SQL要添加约束的列,但是再次,当您使用表定义包含约束时,这不是必需的。

另一方面,尝试与套管和复数更加一致。你有学生(StudentID)和科目(subjectID)。使它们都是单数或使它们全部复数;使它们全部为小写,大写或PascalCase,但不要在同一解决方案中混合使用它们。那些微小的细微差别可能会让你后来悲伤。