首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >唯一索引和include语句

唯一索引和include语句
EN

Stack Overflow用户
提问于 2009-05-25 12:47:06
回答 1查看 4K关注 0票数 1

创建唯一索引

在DB2 UDB中,我可以使用以下语法创建索引

代码语言:javascript
复制
create unique index I_0004 on TABLENAME (a) INCLUDE (b, c, d);

其中a、b、c和d是表TABLENAME的字段。

在用于os390的DB2中,不允许使用此语法( INCLUDE关键字),因此我按如下方式创建索引

代码语言:javascript
复制
create unique index I_0004 on TABLENAME (a);  
create index I_0005 on TABLENAME (a, b, c, d);

上面的两个语句是否等同于使用INCLUDE关键字的解决方案?

索引列顺序

如果我稍微修改一下第一条语句

代码语言:javascript
复制
create index I_0005 on TABLENAME (a, b, c, d) ALLOW REVERSE SCANS;  

这个ALLOW REVERSE SCANS是否等同于创建索引

代码语言:javascript
复制
create index I_0005 on TABLENAME (a, b, c, d);  
create index I_0005 on TABLENAME (d, c, b, a);  

或者它是否也考虑了给定列的任何组合(我的意思是,a,b,c,d;b,c,d,a;c,d,a,b;等等)?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-05-25 16:31:16

关于UNIQUE INDEX:粗略地说,是的,(a)上包括(b, c, d)的唯一索引相当于(a)上的唯一索引加上(a, b, c, d)上的非唯一索引--当然,在内部,数据库引擎可以使用更少的空间&c。

关于ALLOW REVERSE SCANS:不,(a, b)上可以反向扫描的索引并不等同于(b, a)上不能加1的索引--相反,可以反向扫描的索引等同于不能在同一列上加上另一个索引,其中每个ASC都会变成DESC,反之亦然(如果不指定,ASC就是默认值)。

请注意,由于默认情况下允许使用DB2 9.1反向扫描,因此请参阅http://publib.boulder.ibm.com/infocenter/db2luw/v9/index.jsp?topic=/com.ibm.db2.udb.rn.doc/doc/c0023548.htm (并且,我相信DB2 V8现在已不再受支持,请参阅http://www-01.ibm.com/support/docview.wss?rs=71&uid=swg21370360 --我认为V9.5是当前版本)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/906603

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档