본문 바로가기
Database/PGSQL

Primary key와 Foreign key 문제...

by 반화넬 2007. 6. 4.
반응형
안녕하십니까. 한가지 궁금한것이 있어서. 헤메다가 이렇게 글까지 올리게 됐습니다.

Key문제 때문에 궁금한점입니다.
T1,T2 라는 테이블이 있습니다.
그런데 T1은 Primary key가 두개 입니다.
create table t1(
a int4 primary key NOT NULL,
b int4 primary key NOT NULL,
c int4 NOT NULL,
d int4 NOT NULL,
);

이런식으로는 않되더군요.

create table t1(
a int4 NOT NULL,
b int4 NOT NULL,
c int4 NOT NULL,
d int4 NOT NULL,
primary key(a,b)
);

그래서 이렇게 줬습니다.

여기는 문제가 없습니다.

두번째 테이블에서 첫번째 테이블의 primary key 두개를 각각의 컬럼에서 참조를 할려고 하는데 않되더군요.

create table t2(
a int4 references t1(a),
b int4 references t1(b)
);

이런식으로

제가 워낙 몰라서 질문 드립니다.

다중 Key를 사용할려고 하면 어떻게 해야하나요.

여기서 두번째 테이블의 a라는 컬럼이 primary key, foreign key 두개를 같이 적용될수 있는지요
만일 된다면 스키마를 어떻게 작성해야하는지..궁금합니다.

그럼 답변 부탁드립니다.

송동수 (2003-02-20 12:41:04)
가능합니다. 다음과 같이 하면 됩니다.

create table t1 (
a INT2 not null,
b INT2 not null,
c INT2 null,
d INT2 null,
constraint PK_T1 primary key (a, b)
) ;


create table t2 (
a INT2 not null,
b INT2 not null,
constraint PK_T2 primary key (a, b),
constraint FK_T2_REFERENCE_T1 foreign key (a, b)
references t1 (a, b)
on delete restrict on update restrict
) ;
반응형