错误ORA-02270

时间:2016-10-01 12:20:43

标签: sql oracle

我对SQL很新,我已经坚持了一段时间。

我的四个表中有三个已经创建,但最后一个表不断出现“此列没有匹配的唯一键或主键”错误。我完全不知道如何解决这个问题。

以下是导致问题的两个表,当我尝试创建会话表时出现错误。

CREATE TABLE SCREEN(
BRANCHID CHAR(2) NOT NULL,
SCREENID CHAR(2) NOT NULL,
SCREENCAPACITY CHAR(4),
CONSTRAINT SCREEN_PK PRIMARY KEY(SCREENID, BRANCHID),
CONSTRAINT SCREEN_FK1 FOREIGN KEY(BRANCHID) REFERENCES BRANCH(BRANCHID));

CREATE TABLE SESSIONS(
SESSIONID CHAR(4) NOT NULL,
BRANCHID CHAR(2),
SCREENID CHAR(2),
MOVIEID CHAR(2),
SESSIONDATE DATE,
SESSIONPRICE NUMBER(4,2),
CONSTRAINT SESSIONS_PK PRIMARY KEY(SESSIONID),
CONSTRAINT SESSIONS_FK1 FOREIGN KEY(BRANCHID) REFERENCES BRANCH(BRANCHID),
CONSTRAINT SESSIONS_FK2 FOREIGN KEY(SCREENID) REFERENCES SCREEN(SCREENID),
CONSTRAINT SESSIONS_FK3 FOREIGN KEY(MOVIEID) REFERENCES MOVIE(MOVIEID));

这开始变得非常令人沮丧,所以任何帮助都会非常感激。

2 个答案:

答案 0 :(得分:0)

您的外键SESSIONS_FK2错误。

父表SCREENcomposite Primary key所以当你引用它时你需要在引用中添加复合列

CONSTRAINT SESSIONS_FK2 FOREIGN KEY(SCREENID,BRANCHID) REFERENCES SCREEN(SCREENID,BRANCHID)

同时根据SQL SERVER知识撰写此答案,请评论是否有效

答案 1 :(得分:0)

您有screen的复合主键,因此您必须使用这两个组件来引用它:

CONSTRAINT SESSIONS_FK2 FOREIGN KEY(SCREENID, BRANCHID) REFERENCES SCREEN(SCREENID, BRANCHID)