PK 생성하면서 TABLESPACE, INDEX 지정하기 0 5 5,417

by 쿼리입문자 [Oracle Admin] [2020.06.15 15:54:07]


안녕하세요. PK 제약 조건을 걸면서 2가지 조건을 만족 시키고 싶습니다. 

각각의 조건은 하단 명령어로 만족시킬 수 있는데, 한번에 만족 시키는 것은 되지 않습니다. syntax error

혹시 방법이 있을까요?

- 에러

alter table <TABLE_NAME> add constraint <PK_CONSTRAINT> primary key(col1)  using index <index_name> tablespace <tablespace_name>;

 

 

1. 사용 인덱스 지정

- alter table <TABLE_NAME> add constraint <PK_CONSTRAINT> primary key(col1)  using index <index_name>; 

2. TABLESPACE 지정

- alter table <TABLE_NAME> add constraint <PK_CONSTRAINT> primary key(col1)  using index tablespace <tablespace_name>; 

by 랑에1 [2020.06.15 16:21:13]

변경전 : alter table <TABLE_NAME> add constraint <PK_CONSTRAINT> primary key(col1)  using index <index_name> tablespace <tablespace_name>;

변경후 : alter table <TABLE_NAME> add constraint <PK_CONSTRAINT> primary key(col1)  using index tablespace <tablespace_name>;


by 쿼리입문자 [2020.06.15 16:27:40]

PK를 생성하면서 INDEX NAME도 반드시 명시적으로 선언해야 하는 상황입니다. 생략 말고

포함 시키면서 에러없이 할 수는 없을까요?


by 랑에1 [2020.06.15 16:47:18]

<PK_CONSTRAINT> <- 인덱스도 여기에 명시한 이름으로 생길텐데요


by pajama [2020.06.15 16:32:57]

이런식으로도 가능하긴 한데 원하시는 형태가 맞는지는..

 

SQL> create table emptest as select * from emp;

Table created.

SQL> alter table emptest add constraint emptest_pk primary key(empno)  using index (create unique index emptest_ix1 on emptest (empno) tablespace users) ;

Table altered.

by 쿼리입문자 [2020.07.01 15:51:11]

이것은 docs.oracle.com에도 없는 문법인 것 같습니다.... 되네요.. normal index 또한..

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