SQL/MS-SQL

외래키(foreign key)를 두가지 이상 사용할 경우 예시

박은주 2008. 4. 24. 10:05
create table member_temp_table (
        member_id varchar(20) not null,
        member_pw varchar(20) not null,
        member_intro varchar(200),
        member_jumin char(13) not null unique,        
     constraint event_key PRIMARY KEY (member_id,member_jumin)
)

위와 같이 테이블이 작성되었다고 가정한다.
이때 기본키는 두가지가 주어져 있다.

sp_helpconstraint member_temp_table;

제약조건을 먼저 확인합니다.

alter table member_temp_table
add constraint aaa_fk
foreign key (member_id, member_jumin)  
references member_temp_table(member_id, member_jumin)
-- 이러한 경우는 "자기 참조 릴레이션"이라고 볼 수 있습니다.

다른 테이블을 참조할 경우(물론 이러한 경우가 당연히 많습니다)는 아래와 같겠죠.

alter table member_temp_table
add constraint member_fk_2
foreign key (member_id)  
references another_temp_table(id);


그러할 경우는 참조하는 테이블이 다음과 같이 작성되어 있어야 합니
다.

create table another_temp_table (
            id varchar(20) not null,
     constraint prim_key PRIMARY KEY (id)
)

-- 외래키 "참조 무결성의 원칙"에 따라 당연히 값이 not null 임과 동시에 참조하는 쪽이나 참조를 당하는 쪽이나 서로 자료형이 동일해야 합니다. 이에 대해서는 온라인 도움말에서 "참조 무결성"과 "테이블 관계"를 살펴보시기 바랍니다.