2016-09-22 3 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» существует в них.

Смежные вопросы