2009-09-09 8 views
0

기존 테이블에 외래 키를 추가하려고하는데 문제가있었습니다. 구문에 오류가 있다는 것을 알았 기 때문에 hibernate.cfg.xml 파일을 자동 업데이트되도록 업데이트했습니다.외래 키를 만들 수 없습니다.

결과적으로 최대 절전 모드는 동일한 오류가 발생했습니다. 여기 내 SQL은 외래 키 추가 할 수있다 :

alter table pbi add index FKEA3F7BDE9BAB051 (FK_idP), add constraint FKEA3F7BDE9BAB051 foreign key (FK_idP) references p (idP) 

및 오류는 다음과 같습니다

Cannot add or update a child row: a foreign key constraint fails (`db`.`#sql-6f8_3`, CONSTRAINT `FKEA3F7BDE9BAB051` FOREIGN KEY (`fk_idP`) REFERENCES `p` (`idP`)) 

사람이 실패하는 이유 이유를 생각할 수 있는가?

답변

3

이 오류는 위반하는 기존 레코드가 있기 때문에 제약 조건을 적용 할 수 없음을 의미합니다. 귀하의 경우

pbiFK_idP 표는 그 열 p 테이블 idP 열에 해당 값에 일치하는 레코드가 존재하지 않는 값을 갖는 행을 갖는다.

+0

그래, 그게 다야. 외래 키를 추가하려면 열 추가 쿼리에서 NOT NULL 절을 제거해야했습니다 (또는 키를 추가하기 전에 마이그레이션을 수행해야 함) – Jesse

관련 문제