首页 > 解决方案 > 将表上传到服务器时出错

问题描述

我无法将 3 个表添加到我的数据库(MINOR_DEGREES、STUDENT、STUDENT_RECORD)。
有人可以帮忙吗?

如果有任何混淆,已包含关系图。

图像1

CREATE TABLE PROFESSOR(  
  PSSN int NOT NULL,  
  PName varchar(255) NOT NULL,  
  PStreet varchar(255) NOT NULL,  
  PCity varchar(255) NOT NULL,  
  PState varchar(255) NOT NULL,  
  PZip int NOT NULL,  
  PArea int NOT NULL,  
  PNum int NOT NULL,  
  PSex ENUM ('M','F') NOT NULL,  
  PTitle varchar(255) NOT NULL,  
  PSalary int NOT NULL,  
  PRIMARY KEY (PSSN)  
);  

CREATE TABLE DEGREES(  
  ProfessorSSN int NOT NULL,  
  PDegrees varchar(255) NOT NULL,  
  PRIMARY KEY (ProfessorSSN, PDegrees),  
  FOREIGN KEY (ProfessorSSN) REFERENCES PROFESSOR (PSSN)  
);  

CREATE TABLE DEPARTMENT(  
  DNum int NOT NULL,  
  DName varchar(255) NOT NULL,  
  DPhone varchar(255) NOT NULL,  
  DOffice_Location varchar(255) NOT NULL,  
  PChairSSN int NOT NULL,  
  PRIMARY KEY (DNum),  
  FOREIGN KEY (PChairSSN) REFERENCES PROFESSOR (PSSN)  
);  

CREATE TABLE PRE_REQ(  
  PreReqCNum int NOT NULL,  
  PreReqFor varchar(255) NOT NULL,  
  PreReqTo varchar(255) NOT NULL,  
  FOREIGN KEY (PreReqCNum) REFERENCES COURSE (CNum) ON DELETE CASCADE  
);  

CREATE TABLE COURSE(  
  CNum int NOT NULL,  
  CTitle varchar(255) NOT NULL,  
  CUnits int NOT NULL,  
  CTextBook varchar(255) NOT NULL,  
  Department_Num int NOT NULL,  
  PRIMARY KEY (CNum),  
  FOREIGN KEY (Department_Num) REFERENCES DEPARTMENT (DNum)  
);  

CREATE TABLE MINOR_DEGREES(  
  MinorCWID int NOT NULL,  
  MinorDNum int NOT NULL,  
  Minor varchar(255) NOT NULL,  
  PRIMARY KEY (MinorCWID, MinorDNum),  
  FOREIGN KEY (MinorCWID) REFERENCES STUDENT (SCWID) ON DELETE CASCADE,  
  FOREIGN KEY (MinorDNum) REFERENCES DEPARTMENT (DNum) ON DELETE CASCADE  
);  

CREATE TABLE STUDENT(
  SCWID int NOT NULL,  
  SFname varchar(255) NOT NULL,  
  SLname varchar(255) NOT NULL,  
  SAdrress varchar(255) NOT NULL,  
  SPhone int NOT NULL,  
  Major varchar(255) NOT NULL,  
  MajorDeptNum int NOT NULL,  
  PRIMARY KEY (SCWID),  
  FOREIGN KEY (Major, MajorDeptNum). 
);  

CREATE TABLE SECTION(  
  CourseNum int NOT NULL,  
  SNum int NOT NULL,  
  Classroom varchar(255) NOT NULL,  
  Meet_Dates varchar(255) NOT NULL,  
  Time_Start int NOT NULL,  
  Time_End int NOT NULL,  
  No_Of_Seats int NOT NULL,  
  ProSSN int NOT NULL,  
  PRIMARY KEY (CourseNum, SNum),  
  FOREIGN KEY (CourseNum) REFERENCES COURSE (CNum),  
  FOREIGN KEY (ProSSN) REFERENCES PROFESSOR (PSSN)  
);  

CREATE TABLE STUDENT_RECORD(  
  Student_SWID int NOT NULL,  
  Course_Number int NOT NULL,  
  Section_Number int NOT NULL,  
  Grade varchar(255)  
    PRIMARY KEY (Student_SWID, Course_Number, Section_Number),  
    FOREIGN KEY (Student_SWID) REFERENCES STUDENT (SCWID)  
);

和错误

Error for MINOR_DEGREES:  
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual   that corresponds to your MariaDB server version for the right syntax to use   near 'REFERENCES STUDENT (SCWID) ON DELETE CASCADE,  
  UNIQUE KEY (MinorDNum) REFERENCE' at line 6  

Error for STUDENT:  
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual.  that corresponds to your MariaDB server version for the right syntax to use   near ')' at line 11  

Error for STUDENT_RECORD:  
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual.  that corresponds to your MariaDB server version for the right syntax to use.  near '(Student_SWID, Course_Number, Section_Number),  
    FOREIGN KEY (Student_SWID) RE' at line 6. 

标签: mysql

解决方案


推荐阅读