1

您能告诉我如何在 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 

此外,创建非聚集索引命令不适用于 db2。

任何帮助将不胜感激。

谢谢你。

4

1 回答 1

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
于 2013-02-08T19:21:49.747 回答