Constraint 삭제 후 같은 이름으로 Constraint 생성 시 오로 0 3 2,696

by 깨어있는 시민 [Oracle Admin] [2012.09.20 13:53:20]


안녕하세요~~

오라클 DB는 11g이며,

오류 작업 사항은 다음과 같이 설명될 수 있겠네요.

create table a
( a number, 
  b varchar2(10)
  constraint a_uk unique(a,b),
  c varchar2(2),
....
);

대략 이렇게 a라는 테이블을 생성하면, a_uk를 유니크 인덱스로 생성이 됩니다.

그런 다음, a_uk에 있는 컬럼을 변경하고자 다음과 같이

1) alter table a drop constraint a_uk;

2) alter table a add constraint a_uk unique(b,c);

로 하면 1번은 잘 삭제가 되는데, 2번에서 오류가 납니다.
"ORA-00955"

기존에 객체가 사용중이라고요.

제가 해보면 잘 삭제가 되는데, 파트너 사이트에서 저런 오류가 나온다고 하는데,

어떤 이유인지 궁금합니다.

즐거운 오후되세요~

by 타락천사 [2012.09.20 15:30:28]

말씀하신 절차대로 하시면 깨끗하게 됩니다.

에러 시점에 해당 테이블에 unique index 가 남아서 에러가 나는 것일수 있어요

by 깨어있는 시민 [2012.09.20 16:05:37]
위의 테이블 생성 쿼리로 테이블을 생성하면 Unique constraint에 의해 Unique Index가 생성이 됩니다.

하지만, 글 내용 중 1번으로 Constraint를 Drop하면 Unique Index가 삭제가 되지요.

그리고 다시 Constraint Add를 하면 저런 오류가 나오는거구요.

Constraint를 Drop 했는데도 Unique Index가 남는 경우는 어떤 경우일까요? 버그일까요?

by 타락천사 [2012.09.20 18:20:11]

기재하신것처럼 하시면 에러 없어야 정상이죠 ㅇ.ㅇ
삭제 에러 시점에 constraint 와 index 를 조회해보세요 ㅇ.ㅇ
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입