2013-04-23 2 views
0

색인이있는 표를 만들려고하지만 오른쪽 괄호가 누락되었다는 ORA-00907 오류가 발생합니다. 여기에 오류가 발생하는 SQL 예제입니다.오류 : Oracle에서 색인을 생성 할 때 오른쪽 괄호가 누락됩니다.

create table example 
(
    id number(12, 0) not null using index (create index example_idx on example(id)) 
); 

아마도 null이 아니기 때문에 키워드가 맞지 만 오른쪽 괄호를 묻는 이유를 모르겠습니다.

답변

2

create tablecreate index은 별도의 명령문이므로 인라인으로 정의한 고유 키 또는 기본 키 제약 조건을 백업하기 위해 암시 적으로 또는 명시 적으로 작성된 인덱스를 가질 수는 있지만 그렇게 혼합 할 수는 없습니다.

당신은 두 개의 문장으로,이 단계에서이 작업을 수행 할 필요가 :

create table example (id number(12, 0) not null); 
create index example_idx on example(id); 

당신이 here에서 보여 예 :

CREATE TABLE a (
a1 INT PRIMARY KEY USING INDEX (create index ai on a (a1))); 

이라는 제목의 섹션에 '를 지정 제약 조건과 연관된 색인 '을 사용하고 은 기본 키 제약 조건의 일부로 색인을 생성합니다. using index 절은 here으로 설명됩니다.

코드에서 인덱스로 지원되지 않는 not-null 제약 조건이 작성되므로이 절은 유효하지 않습니다. 고유 한 키 또는 기본 키를 백업하는 경우에만이 색인 작성 메소드를 사용할 수 있습니다. 제공 한 링크에 나와 있습니다.

+0

http://docs.oracle.com/cd/B28359_01/server.111/b28310/indexes003.htm 이 링크는 동일한 방식으로 표시됩니다 (예제 1 참조). – randacun

+0

@randacun - 고유 키 제약 조건과 기본 키 제약 조건에 대해서만 수행합니다. not-null 제약 조건. 희망을 명확히하기 위해 답변을 업데이트했습니다. –

+0

감사합니다. 아마도 색인을 따로 따로 선언 할 것입니다. – randacun

관련 문제