2011-08-01 2 views
-1

참조하는 기본/고유 키의 컬럼 수가 적은 외래 키를 가질 수 있습니까? (ORA-02270 오류는 no라고 표시됨)오라클 참조 제한

+1

외부 키는 하나의 외부 행을 참조해야합니다. 즉, 고유 한 키의 * all *을 의미합니다 (기본 키도 고유 한 키입니다). – MatBailie

답변

2

FK가 반드시 다른 테이블의 PK 일 필요는 없습니다. 그것은 가능할 수 있지만 그렇게 할 필요는 없습니다. 당신이 필요로

그래서 당신은 oracle에서 ... FK로

을 많은 열을 사용할 수 있습니다

자식 테이블의 외래 키를 것 일반적으로 참조 부모의 기본 키 표.

편집는 : 원래의 질문을하지 FK로 불완전 PK 사용에 대한 열 수에 대한했다.

FK는 다른 테이블에서 고유 한 것을 참조해야합니다. 따라서 UNIQUE 제약 조건이있는 열이나 다른 테이블의 PK를 사용해야합니다 (PK도 고유해야하므로 예를 들어 각 열만 있으면 테이블에서 여러 열을 선택할 수 있습니다. 고유하지만 여러 열의 연결은 고유 할 것입니다).

+0

ORA-02270 그렇지 않을 경우 – Rnet

+0

ORA-02270은 원래 질문을 고려하여 달리 말하지 않습니다. 단지 열이 고유해야하며 열의 수와 관련이 없다고 말합니다. FK는 원하는만큼의 열을 가질 수 있지만 (오라클의 경우 32 개로 제한됨) 모든 고유 한 제약 조건이 있어야합니다. – woliveirajr

4

더 적은 수의 열을 사용할 수 있지만 의 행을 사용하면에 UNIQUE 제약 조건이 있어야합니다.

기본 키의 일부분에만 UNIQUE 제약 조건을 넣을 수 있습니다. "기본 키에 첫 번째 키보다 많은 열이있는 이유는 무엇입니까? 장소?"