2017-04-11 61 views
0

我有多個表,需要幫助SQL錯誤(ORA-02270):沒有此列列表匹配的唯一或主鍵錯誤

- 學生(StudentID [PK],StudentName)

-Qualified (FID [PK],CourseID [PK],dateQ)

-Faculty(FID [PK],FNAME)

道菜的(CourseID [PK],CourseName)

,我需要創建另外2個是Se ction和註冊。

-section(SectionNo [PK],學期[PK],CourseID [PK])

-Registration(StudentID [PK],SectionNo [PK],學期[PK])

我第一沒有任何問題創造部分:

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); 

然後我試圖創建一個名爲登記表,但它給我的錯誤的稱號。

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); 

有人能幫我找出問題是什麼嗎?

回答

2

的ORA-2270錯誤是相當簡單:它發生的時候,我們的外鍵引用的列不匹配父表的主鍵或唯一約束。

在這裏,你的情況下,部分表的主鍵(SectionNo,學期,CourseID),而你只提到第(SectionNo,學期)

爲了擺脫這種請加「CourseID在您的輔助鍵以及

很好看的:Oracle (ORA-02270) : no matching unique or primary key for this column-list error

+0

的問題是,「CourseID」沒有在第表中找到,所以我不能添加到我的外鍵聲明 –

+0

我不知道是什麼你的意思是在這裏,我可以清楚地看到列: 「CourseID varchar(25)not null」 以及contraint定義主鍵上柱: 「約束sec_pk主鍵(SectionNo,學期,CourseID)」 – subodhkarwa

+0

這是你想要什麼我添加到我的代碼?約束reg_fk2外鍵(SectionNo,Semester)參考 Section(SectionNo,Semester,CourseID)上刪除級聯); –

相關問題