학교 프로젝트를 위해 데이터베이스 프로젝트를 만들고 있습니다. 특정 테이블 중 하나는 기본 키의 한 열 이외의 외래 키입니다. 나는 모든 유형의 값을 INSERT INTO
할 때 나는 오류 메시지 :외부 키 및 부모 키 정의
--Insert failed for rows 1 through 50
--ORA-02291: integrity constraint (112ZACCARO.SYS_C0013505) violated - parent key not found
그 제약 조건은 Helmet
열입니다. PArmorOptions
의 기본 키를 참조하는 방법을 알아야합니다. 다음과 같은 방식으로 모든 기본 키와 외래 키를 설정 했으므로 기본 키를 PCharacterBuilds
으로 표시 할 필요가 없다고 생각합니다.
ALTER TABLE PCharacterBuilds ADD FOREIGN KEY (ClassName) REFERENCES PClasses(ClassName);
ALTER TABLE PCharacterBuilds ADD FOREIGN KEY (Helmet) REFERENCES PArmorOptions(OptName);
ALTER TABLE PCharacterBuilds ADD FOREIGN KEY (Chestpiece) REFERENCES PArmorOptions(OptName);
ALTER TABLE PCharacterBuilds ADD FOREIGN KEY (Gauntlets) REFERENCES PArmorOptions(OptName);
ALTER TABLE PCharacterBuilds ADD FOREIGN KEY (LegArmor) REFERENCES PArmorOptions(OptName);
ALTER TABLE PCharacterBuilds ADD FOREIGN KEY (Boots) REFERENCES PArmorOptions(OptName);
및 PArmorOptions
CREATE TABLE PArmorOptions
(
OptName NVARCHAR2(50),
Rarity NVARCHAR2(20),
ArmorMaterial NVARCHAR2(20)
);
ALTER TABLE PArmorOptions ADD PRIMARY KEY (OptName);
ALTER TABLE PArmorOptions ADD FOREIGN KEY (MaterialID) REFERENCES PArmorType(MaterialID);
오류 메시지는'Helmet' 필드에 대한 값을 삽입하려고하고 있는데,'PArmorOptions'에서 기본 키로 찾을 수 없습니다. – Elyasin
제한 조건 평가 시간을 점검하십시오. 동사 시간 -vs- 헌신 시간? – McMurphy
@Elyasin yea, 위의'alter table' 문으로 PK를 선언 했으므로 일치하지 않을 이유가 확실하지 않습니다. – mzaccaro89