【发布时间】:2020-05-04 09:52:17
【问题描述】:
我有两张桌子。
Section (SectionNo, Semester, CourseID)
Registration(Registration-ID、StudentID、SectionNo、Semester)
当我想引用注册表中的 FK 属性“SectionNo”和“Semester”时,我在创建注册表时遇到了麻烦。
我的代码是这样的:
CREATE TABLE REGISTRATION(
Registration_ID Int NOT NULL,
StudentID Int NOT NULL,
SectionNo Int NOT NULL,
Semester Varchar(25) NOT NULL,
CONSTRAINT REGISTRATION_PK PRIMARY KEY(Registration_ID),
CONSTRAINT REGISTRATION_FK1 FOREIGN KEY(StudentID)
REFERENCES STUDENT(StudentID) ON DELETE CASCADE,
CONSTRAINT REGISTRATION_FK2 FOREIGN KEY(SectionNo,Semester)
REFERENCES SECTION(SectionNo,Semester) ON DELETE CASCADE
);
但是,当我在 Oracle 上运行它时,我得到的错误是:
ORA-02270: no matching unique or primary key for this column-list
我已经将 Section 表创建为:
CREATE TABLE SECTION(
SectionNo Int NOT NULL,
SEMESTER Varchar(25) NOT NULL,
CourseID Varchar(25) NOT NULL,
CONSTRAINT SECTION_PK PRIMARY KEY(SectionNo,Semester, CourseID),
CONSTRAINT SECTION_FK1 FOREIGN KEY(CourseID)
REFERENCES Course(CourseID)
ON DELETE CASCADE
);
创建节表没有错误。因此,我对如何创建注册表感到困惑。
感谢大家的帮助。
【问题讨论】:
-
这是一个常见问题解答。在考虑发布之前,请阅读手册和谷歌任何错误消息或您的问题/问题/目标的许多清晰、简洁和精确的措辞,有和没有您的特定字符串/名称和站点:stackoverflow.com 和标签;阅读许多答案。如果您发布问题,请使用一个短语作为标题。反映你的研究。请参阅How to Ask 和投票箭头鼠标悬停文本。
标签: sql oracle foreign-keys data-modeling