2016-07-13 27 views
0

我對我的外鍵創建索引:走走缺少左括號'創建唯一索引時,全局分區

CREATE INDEX FK_SOME_TABLE ON SOME_TABLE(F_SOME_ID) 
LOCAL 
LOGGING 
TABLESPACE SOME_TABLESPACE 
NOPARALLEL; 

它正常工作。

我嘗試在主鍵上創建唯一索引,但所有時間我得到有關「缺少左括號」的錯誤 ,我沖掉了一些關於「缺少左括號」的問題,但我無法獲得解決方案。

CREATE UNIQUE INDEX PK_SOME_TABLE ON SOME_TABLE 
     (SOME_ID) 
      TABLESPACE SOME_TABLESPACE 
     LOGGING 
     GLOBAL PARTITION BY RANGE (SOME_ID) 
      INTERVAL (1000) 
      (
      PARTITION P_1 VALUES LESS THAN (1000) 
     ) 
     NOPARALLEL; 

也許我忽略括號中的一個重要的地方,但我真的不知道在哪裏。 你能給我一些建議嗎?

+3

沒有它編譯間隔......從什麼我讀間隔設置在創建表,而不是指數。但我有點不在我的聯盟中。 – xQbert

+1

查看[documentation](http://docs.oracle.com/cd/E11882_01/server.112/e41084/statements_5012.htm#i2171607) – Aleksej

+0

http://www.orafaq.com/wiki/Interval_partitioning似乎指出,索引組織表不支持間隔分區。但我不確定這些概念是否與您在此處所做的一致。 – xQbert

回答

0

當我們使用創建UNIQUE INDEXGLOBAL PARTITION BY RANGE我們只能使用此選項:因爲我們看到

COMPRESS, 
NOCMPRESS, 
PCTFREE, 
INITRANS, 
MAXTRANS, 
STORAGE, 
TABLESPACE, 
PARALLEL, 
RECOVERABLE, 
UNRECOVERABLE, 
LOGGING, 
NOLOGGING, 
LOCAL, 
GLOBAL 

所以,我們不能用INTERVAL,但是這不是我的最後一次錯誤。如果我們使用GLOBAL PARTITION,我們必須爲所有列指定MAXVALUE,所以我們必須添加新分區,其中值小於MAXVALUE

正確的說法,而我前面提到create unique指數:

CREATE UNIQUE INDEX PK_SOME_TABLE ON SOME_TABLE 
     (SOME_ID) 
     LOGGING 
     TABLESPACE SOME_TABLESPACE    
     GLOBAL PARTITION BY RANGE (SOME_ID) 
      (
      PARTITION P_1 VALUES LESS THAN (1000) 
      PARTITION P_2 VALUES LESS THAB (MAXVALUE) 
     ) 
     NOPARALLEL;