SQL错误:ORA-02291:完整性约束,未找到父键

时间:2016-09-22 07:19:09

标签: sql oracle

这是我试图将值插入的表:

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

当填充表时,我得到错误,说明原因是外键值没有匹配的主键值。我能够插入除一个之外的所有行。我不确定为什么我会收到这个错误?

INSERT INTO SESSIONS VALUES ('SS01', 'B1', 'S1', 'M1', '3-May-16', 12.50);
INSERT INTO SESSIONS VALUES ('SS02', 'B2', 'S1', 'M2', '4-Jun-16', 19.45); // Line where the error occurs
INSERT INTO SESSIONS VALUES ('SS03', 'B1', 'S2', 'M2', '3-May-16', 12.67);
INSERT INTO SESSIONS VALUES ('SS04', 'B4', 'S2', 'M4', '13-May-16', 14.56);
INSERT INTO SESSIONS VALUES ('SS05', 'B3', 'S2', 'M5', '23-May-16', 14.56);
INSERT INTO SESSIONS VALUES ('SS06', 'B3', 'S1', 'M5', '3-Jun-16', 16.32);
INSERT INTO SESSIONS VALUES ('SS07', 'B4', 'S2', 'M3', '14-May-16', 21.78);
INSERT INTO SESSIONS VALUES ('SS08', 'B1', 'S2', 'M2', '6-Jun-16', 16.82);
INSERT INTO SESSIONS VALUES ('SS09', 'B2', 'S3', 'M4', '13-May-16', 17.90);
INSERT INTO SESSIONS VALUES ('SS10', 'B4', 'S1', 'M3', '6-Jun-16', 16.37);

2 个答案:

答案 0 :(得分:0)

确保您的电影和屏幕表已填充并且“' M2'或者' S1'价值存在于其中。

答案 1 :(得分:0)

运行此查询时,

INSERT INTO SESSIONS VALUES ('SS02', 'B2', 'S1', 'M2', '4-Jun-16', 19.45);

然后用MOVIE表格检查表格中的MOVIEID。 再次查看SCREEN(SCREENID, BRANCHID),检查组合是否与插入时相同。

如果引用的表中没有相同的数据,则会出现此错误。

希望它会有所帮助。