我有多张桌子,
-Student(StudentIDpk,StudentName)
-Qualified(FIDpk、CourseIDpk、dateQ)
-Faculty(FIDpk,Fname)
-Course(CourseIDpk,CourseName)
我需要创建另外两个,它们是节,和注册。
-Section(SectionNopk,Semesterpk,CourseIDpk)
-Registration(StudentIDpk,SectionNopk,Semesterpk)
我首先创建一个没有任何问题的部分:
create table section(
SectionNo number(28) not null,
Semester varchar(25) not null,
CourseID varchar(25) not null,
constraint sec_pk primary key(SectionNo,Semester,CourseID),
constraint sec_fk foreign key(CourseID) references Course(CourseID)
on delete cascade);然后我尝试创建一个名为registration的表,但它给出了标题中的错误。
create table registration(
StudentID number(28) not null,
SectionNo number(28) not null,
Semester varchar(25) not null,
constraint reg_pk primary key(SectionNo,StudentID,Semester),
constraint reg_fk foreign key(StudentID) references Student(StudentID)
on delete cascade,
constraint reg_fk2 foreign key(SectionNo,Semester) references
Section(SectionNo,Semester) on delete cascade);有没有人能帮我弄清楚问题出在哪里?
发布于 2017-04-12 01:07:31
ORA-2270错误非常简单:当我们在外键中引用的列与父表上的主键或唯一约束不匹配时,就会出现这种错误。
这里,在您的例子中,区段表的主键是(SectionNo,Semester,CourseID),而您仅引用Section(SectionNo,Semester)
若要消除此问题,请在您的辅助密钥中添加"CourseID as
一本好书:Oracle (ORA-02270) : no matching unique or primary key for this column-list error
https://stackoverflow.com/questions/43352046
复制相似问题