Lea*_*ner 4 mysql sql sql-server clustered-index
伙计们,我想了解以下问题的答案:
我可以拥有没有聚簇索引的主键吗?(我知道,当我们在列上创建主键约束时,默认情况下会创建聚簇索引。因此,在这种情况下,应如何停用聚簇索引?)
我可以有一个包含多个列的聚集索引吗?(就像非集群一样,我可以为一个非集群索引连接不同的列)。
(此答案仅适用于SQL Server 2005+。我对MySQL一无所知。)
我可以拥有没有聚簇索引的主键吗?
是。如前所述,默认情况下,主键约束由聚簇索引支持。您可以通过声明约束来告诉SQL Server使用非聚集索引来支持约束:
ALTER TABLE MyTable
ADD CONSTRAINT PK_MyTable
PRIMARY KEY NONCLUSTERED(Col1);
Run Code Online (Sandbox Code Playgroud)
我可以有一个包含多个列的聚集索引吗?(就像非集群一样,我可以为一个非集群索引连接不同的列)。
是的,您可以定义一个索引,并且索引键中的一列以上。实际上,它与非聚集索引没有什么不同。
CREATE UNIQUE CLUSTERED INDEX IX_MyTable_Clus
ON MyTable(Col1, Col2, Col3);
Run Code Online (Sandbox Code Playgroud)
参考文献:ALTER TABLE,CREATE INDEX
| 归档时间: |
|
| 查看次数: |
5621 次 |
| 最近记录: |