> 아래문장은 임의의 테이블을 만드는 문장입니다.
> primary key를 지정하는 부분이 문법적으로 맞는지. 그리고 foregin key는
> 어떻게 정해줘야 합니까(creat문에서)
> create table member(
> mem_code varchar(5) primary key mem_code,
> mem_name varchar(20)
> );
primary key 지정 부분은 그냥 primary key 라는 구문만 명시해 주면 알아서 member_pkey 라는 primary key 가 생성됩니다.
그러므로 다음과 같이 명시해 주시면 됩니다.
CREATE TABLE member (
mem_code varchar(5) primary key not null,
mem_name varchar(20)
);
> create table car(
> car_code varchar(5) primary key car_code,
> mem_code varchar(5) //>foregin key입니다. 어떻게 포린키임을 알립니까?
>
> car_name varchar(20)
> );
> 참고로 postgres6.4.2를 쓸려고 합니다. 이 번전에서 foregin key 지원이
> 안된다는 말도 있던데 맞습니까?
> 답변 꼭 좀 부탁드립니다.
foreign key 는 안타깝게도 아직도 지원되지 않고 있습니다. 그러므로 foreign key 는 사용치 않는것이 현재로서는 정신건강에 이로울 것 같습니다.
하지만 꼭 필요한 경우라면 구현방법은 있습니다. (일종의 흉내내기라고 하는게 좋을 것 같습니다)
1. rule system 을 이용하는 방법
2. trigger 를 이용하는 방법
3. PL/pgSQL 과 constraints 구문을 이용하는 방법
이상 세가지 방법이 있지만 개별적으로 다 설명 드리는 것은 무리라고 생각됩니다. 그러므로 방법론만을 알려 드린 것이니 문서를 읽어 보시고 구현 방법에 대해서 연구해 보시기 바랍니다. (이상의 것은 저가 임의로 경험에 의거 생각해 본것입니다. 혹시 더 좋은 방법이 있다면 알려 주시기 바랍니다)
|