2016-09-22 86 views
-1

這是我想要的值插入表:SQL錯誤:ORA-02291:完整性約束,父鍵未發現

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

顯然,其中一個外鍵沒有匹配的行。由於您沒有爲這些表格指定數據,因此無法告訴您哪一個。 – jarlh

+0

因爲對'B2' - 'S1'不存在父表中,我想。 – hinotf

回答

0

當您運行此查詢,

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

然後用MOVIE表檢查MOVIEID表中存在。 再次檢查SCREEN(SCREENID, BRANCHID),檢查組合是否與插入相同。

當相同的數據不存在於被引用的表中時,你得到了這個錯誤。

希望它會有所幫助。

0

確保您的MOVIE和SCREEN表已填充,且其中存在'M2'或'S1'值。

相關問題