drop table t
이러면 t라는 테이블이 삭제 되었습니다.
그런데 지금 분명 테이블이 있고 삭제할 테이블명도
정확히 입력했는데 그런 테이블이 없다면서 에러를 냅니다.
지금.. 제 정신은 아주 말짱하구요. 오타없습니다. 혹시나 해서
tab키를 쳐서 테이블명을 완성하여 drop해보기도 했지만 똑같습니다.
조금 황당하면서 많이 당황스럽습니다. 그 테이블명은
MemberProfiles 입니다. 대소문자를 섞어 이름지었기 때문인가요?
아.. psql -f 해서 sql문이 있는 파일을 불러다 create하는 도중에
에러가 났었습니다. create table하고 그 다음 sql이 index를
만드는 거였는데.. 지금 그 에러문을 다시 보긴 힘들것 같아 정확히
어떤 에러였는지는 말씀 못드리지만 대강 기억으로 그 에러문에서
memberprofiles 라는 테이블명이 존재하지 않는다는 에러 같았습니다.
윈도우 다시 까는 기분으로 DB다시 깔까요? 머리쓰는거 보다
단순무식한 일들은 자신도 있고 결벽증 같은게 있어서 에러같은거는
용납못하는 성격이거든요.
그리고 이건 좀 다른 문제이지만.. 한테이블이 있는데 이 테이블에
FK가 여러개 입니다. 이 테이블 저 테이블과 연관되어 있기때문에
FK가 네개정도로 늘어났는데 create table 할때 문법이 어떻게 되나요?
그 테이블만 직접 보여드리면.. (속성정의나 실제 쓰임은 좀 다릅니다.
그래서 제딴에는 이해하시기 쉽도록 일반화 시켜봤는데 더 이해가 안가실런지도..-_-)
CREATE TABLE t1 (
id char(6), -- t0 테이블 PK (학번같은거..)
course varchar(6), -- t2 테이블의 PK (수강과목 같은거..)
point int default 0 not null, -- 학점
primary key(id, course), -- 복합키
-- 하나를 잡는것은 밑에 처럼 하면 되죠?
foreign key(id) references t0 on delete cascade
);
대강 이런데 id, course는 다른 테이블에선 각각 그 테이블의 PK입니다.
t1이라는 테이블은 학점 같은거구요.
id를 PK로 가지는 테이블 t0은 학생 같은 속성을 가지고
course를 PK로 가지는 테이블 t2는 수강과목 같은겁니다.
학점(t1테이블)이라는 테이블에서 id, course가 복합키가 되구요.
요약하면 학점관리 같은건데 제가 테이블 설계하는 쪽으로 잘 몰라서
제대로 설계한건지 모르겠네요. 한번 보시고 조언해주시면 연말에
큰 복 받으실꺼에요. ^^;
|