各位,我想了解以下问题的答案:
发布于 2012-08-08 16:56:28
(此答案仅适用于Server 2005+。我对MySQL一无所知。)
我可以有一个没有聚集索引的主键吗?
是。正如您所提到的,主键约束默认由聚集索引支持。通过声明约束,您可以告诉Server使用非聚集索引备份约束,如下所示:
ALTER TABLE MyTable
ADD CONSTRAINT PK_MyTable
PRIMARY KEY NONCLUSTERED(Col1);是否可以将多列聚集索引放在一起?(就像在非集群中,我可以为单个非聚集索引连接不同的列)。
是的,您可以在索引键中定义具有多个列的索引。它实际上与非聚集索引没有什么不同。
CREATE UNIQUE CLUSTERED INDEX IX_MyTable_Clus
ON MyTable(Col1, Col2, Col3);参考资料:ALTER TABLE,CREATE INDEX
发布于 2012-08-08 12:46:26
MySQL和SQL-SERVER是不同的关系型数据库。它们具有不同的功能和不同的语法。
在使用InnoDB时,MySQL总是将PK作为聚集索引。
然而,SQL-SERVER将允许您创建一个没有CLUSTERED关键字的PK,并让您在另一个索引中使用它。
在这两种情况下,PrimaryKeys和索引(集群与否)都可以覆盖多个字段。
https://stackoverflow.com/questions/11864754
复制相似问题