创建db2非聚集索引

时间:2013-02-08 17:41:16

标签: database indexing db2 non-clustered-index

您能否告诉我如何在DB2中创建非聚簇索引?我无法找到任何命令。我想在三列上创建一个索引。我试过了:

CREATE INDEX IX_ACCOUNTNOTES_DATE_TYPE 
ON CPMTD.ACCOUNT_NS (ACCOUNT_ID,CREATED_DATE,NOTE_TYPE);"

它给我的错误是:

   DB2 SQL Error: SQLCODE=-104, SQLSTATE=42601, SQLERRMC=;;TED_DATE,NOTE_TYPE );END-OF-STATEMENT,       DRIVER=3.50.152   

    Message: An unexpected token "" was found following "".  Expected tokens may include:  "TED_DATE,NOTE_TYPE )".. SQLCODE=-104, SQLSTATE=42601, DRIVER=3.50.152 

另外,create nonclustered index命令对db2不起作用。

任何帮助将不胜感激。

谢谢。

1 个答案:

答案 0 :(得分:4)

正常的CREATE INDEX (DB2 for z/OS)CREATE INDEX (DB2 for LUW)命令应该适合您,

CREATE INDEX IX_ACCOUNTNOTES_DATE_TYPE 
ON CPMTD.ACCOUNT_NS (
     ACCOUNT_ID
    ,CREATED_DATE
    ,NOTE_TYPE
)

如果你完全复制并粘贴了你的命令,那么最后的额外"可能会搞乱。

此外,DB2将所有索引创建为非群集。除非您使用CLUSTER选项定义新索引,否则定义的第一个索引将是聚类索引:

CREATE INDEX IX_ACCOUNTNOTES_DATE_TYPE 
ON CPMTD.ACCOUNT_NS (
     ACCOUNT_ID
    ,CREATED_DATE
    ,NOTE_TYPE
)
CLUSTER