SQL에서 기본 키가 아닌 (여러) 고유 키 인 외래 키를 가질 수 있습니까? 구체적으로 :SQL은 외래 키가 다중 후보 키인 경우이를 허용하지 않습니까?
[표 1]
CREATE TABLE Session_Record(
c_id CHAR (3) NOT NULL
REFERENCES Club_Record(c_id),
sess_id NUMBER (4) NOT NULL CHECK (sess_id >0)
room CHAR (4) NOT NULL,
UNIQUE(c_id, sess_id)
);
[표 2]
CREATE TABLE SessionDuration__Record(
c_id CHAR (3) NOT NULL
REFERENCES Club_Record(c_id),
sess_id NUMBER (4) NOT NULL CHECK (sess_id >0)
REFERENCES Session_Record(sess_id),
day CHAR(9) NOT NULL,
duration NUMBER(3) NOT NULL,
UNIQUE(c_id, sess_id)
);
'C_ID'Club_Record 테이블의 기본 키이다. 그러나 sess_id는 기본 키가 아닙니다. c_id와 조합 된 다중 후보 키입니다. 이 선언 형식은 SQL에서 허용됩니까? Oracle 10g는 (sess_id) 외래 키 문에 대해 "이 열 목록에 일치하는 고유 키 또는 기본 키가 없습니다"를 반환하기 때문에. 도움을 많이 받으실 수 있습니다!
아 봤어! 그 일을 해 주셔서 감사합니다, 그냥 SQL에서 시작하기 :) – Abhischek
당신을 진심으로 환영합니다! – ruakh
화합물'(c_id, sess_id)'에 대한 참조는 간단한 '(c_id)'참조를 중복시킵니다. – onedaywhen