내가 가지고있는 다음과 같은 3 개 테이블 :외래 키 복합 기본 키
TBLA
ID - PK
name
tblB
ID - PK
tblAID - FK references tblA.ID
pkID2
tblC
ID - PK
tblAID *
fkID2 *
...
내가이 할 경우,이 튜플 (tblB.tblAID, tblB.pkID2)
의 FK을 만들고 싶어 :
더 기본 또는 후보 키에 없습니다 : 나는 오류 메시지가
alter table tblC with check add constraint FK_tblC_tblB foreign key (tblAID, fkID2) references tblB (tblAID, pkID2)
을 외부 키의 참조 열 목록과 일치하는 참조 된 테이블 'tblB' 'FK_tblC_tblB'
1 : 나는 에 tblC
에 삽입 된 튜플 쌍이 존재하도록하고 싶다. 하지만 pkID2
은 키가 아니기 때문에 그렇게 할 수 없습니다. 실제로 tblB
은 복합 기본 키로 tblAID, pkID2
을 가질 수 있습니다. 그러나 tblAID
은 여전히 tblA.ID
의 FK 여야합니다.
이것은 반 수사법이지만 tblC에 넣는 열을 tblB에 넣을 수없는 이유는 무엇입니까? – Dave
나는 당신이 머무르고 자하는 것을 분명히 알지 못합니다. tblB에 tblAID 및 pkID2 값이 포함되어 있지 않으면 tblC에 행을 추가하지 못하게하고 tblC에 tblAID 및 pkID2 값이 포함되어 있으면 tblB에서 삭제되지 않도록이 제약 조건이 적용됩니까? –