primary key 관련 질문 있습니다. 0 4 1,741

by 인생설계중 [Oracle 기초] [2014.12.23 10:01:48]


안녕하세요~

오라클 관련해서 질문이 생겨서 처음으로 올려보아요 ^^

primary key 제약조건 생성시 동일한 이름으로 유니크 인덱스가 생성이 되는데요~

using index 구문으로 만들어 놓은 인덱스를 사용가능하게도 가능하구요~

질문은 primary key 가 emp_id 에 잡혀 있고, unique index를 emp_id,job_id 로 만들경우

using index 구문으로 사용가능 할가요?

 create unique index emp_pk_idx on emp(emp_id,job_id,manager_id,dept_id);

alter table emp add constraint emp_px primary key(emp_id) using index emp_pk_idx;

..제약조건과 인덱스 컬럼이 매치 하지 않는다는 에러가 나네여....

혹시 사용할 수 없는걸까요?

사용할수 있다면.. 영향도가 클까요.?

 

참고 )

( emp_id, a2,a3,a4) 컬럼으로 인덱스를 만들어야 합니다.

전체 통계자료 만드는 것 때문에... 인덱스 fast full scan으로 돌리려구요.

(실시간적으로 통계를 정확하게 뽑아야 하고, mview의 경우 제약조건때문에.. 못만드는 상황입니다..

제가?? 제약조건을 정확하게 판별못해서.. 그런거 일수도 있습니다..)

근데 emp_id가 primary key다 보니 인덱스가 이미 있고, 또다른 인덱스 만들기가 꺼림찍해서

여쭈어봅니다.

by 아발란체 [2014.12.23 10:43:20]

USING INDEX가 UNIQUE 인덱스로 생성되서 발생한 문제인 것 같습니다.

USING 절에 사용한 인덱스가 UNIQUE 인덱스를 써야 할 경우 PRIMARY KEY로 지정한 항목과 동일해야 할 것 같습니다.

USING 절에 있는 인덱스가 UNIQUE 인덱스가 아니여도 FAST FULL SCAN은 가능할 것 같습니다.

 


by 인생설계중 [2014.12.23 12:54:09]

아쿠,, 정신없이 오전이 지나가서 답변이 늦었네여~

답변 감사합니다.  primary key랑 항목이 다르면. 안되겟네요~..

흐음 다른 인덱스 만드는걸 생각해 봐야겠습니다

답변 정말 감사합니다~


by 마농 [2014.12.23 13:23:55]

안된다는게 아닌데요???

유니크 조건만 빼면 얼마든지 가능합니다.


by 인생설계중 [2014.12.26 10:31:53]

점심시간에 확인하고 나서 댓글 더 있는것을 확인 못하였습니다 ㅠㅠ

마농님 죄송합니다.

가입한지 얼마 안되서 그런지 쪽지 기능은 없는 것 같네요.

급한김에 일단 다른 인덱스를 생성해서 해결했습니다..

유니크 조건만 빼면 가능하다는 것은 몰랐던 일이네여..

primary key인데.. unique 없는 인덱스로 생성이 가능하군요.. 몰랐습니다^^ 아직 초보인지라..

답변 정말 감사합니다~ . 리플이 늦어서 정말 죄송합니다. 마농님.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입