Mysql 为什么我总是遇到错误1005:Can';是否创建表(错误号:150)?
我按照提到的顺序创建了以下表格。但是,当我创建Mysql 为什么我总是遇到错误1005:Can';是否创建表(错误号:150)?,mysql,Mysql,我按照提到的顺序创建了以下表格。但是,当我创建enrolls表时,出现了一个错误 我知道这与外键约束有关。但我觉得我做的一切都是对的。我不知道我做错了什么: create table Course ( CourseNo integer(10), CourseName varchar(50), Department varchar(20), primary key (CourseNo)) Engine = InnoDB; create table Section
enrolls
表时,出现了一个错误
我知道这与外键约束有关。但我觉得我做的一切都是对的。我不知道我做错了什么:
create table Course (
CourseNo integer(10),
CourseName varchar(50),
Department varchar(20),
primary key (CourseNo)) Engine = InnoDB;
create table Section (
CourseNo integer(10),
SectionNo integer(10),
Instructor varchar(50),
primary key (CourseNo, SectionNo),
foreign key (CourseNo) references Course(CourseNo)) Engine = InnoDB;
create table Student (
SSN varchar(9),
FirstName char(50),
LastName char(50),
Street char(50),
City char(50),
State char(50),
Zip char(5),
primary key (SSN)) Engine = InnoDB;
create table Enrolls (
SSN varchar(9),
SectionNo integer(10),
CourseNo integer(10),
foreign key (SectionNo) references Section(SectionNo),
foreign key (CourseNo) references Section(CourseNo),
foreign key (SSN) references Student(SSN),
primary key (SSN, SectionNo, CourseNo)) Engine = InnoDB;
否,您在定义外键时出错。下面的那个是精确的
foreign key (SectionNo) references Section(SectionNo)
foreign key (CourseNo) references Section(CourseNo),
在部分
表中,有两列定义为主键主键(CourseNo,SectionNo)
。因此,在FK中,必须使用两个字段/列引用这两个字段
foreign key (CourseNo, SectionNo) references Section(CourseNo, SectionNo)
这意味着,必须以以下方式创建最后一个表:
create table Enrolls (
SSN varchar(9),
SectionNo integer(10),
CourseNo integer(10),
primary key (SSN, SectionNo, CourseNo),
foreign key (CourseNo, SectionNo) references Section(CourseNo, SectionNo)
) Engine = InnoDB;
在这里观看小提琴演示非常感谢!很有道理!