伙计们,我想了解以下问题的答案:
我能有没有聚集索引主键? (我知道,当我们在一个列上创建主键约束,它在默认情况下会创建一个聚集索引。因此,在这种情况下,我应该如何禁用聚集索引?)
我可以有多个列一起聚集索引? (如在非聚集在哪里可以用于单个非聚集索引加入不同的列)。
伙计们,我想了解以下问题的答案:
我能有没有聚集索引主键? (我知道,当我们在一个列上创建主键约束,它在默认情况下会创建一个聚集索引。因此,在这种情况下,我应该如何禁用聚集索引?)
我可以有多个列一起聚集索引? (如在非聚集在哪里可以用于单个非聚集索引加入不同的列)。
(这个答案是SQL Server 2005+而已。我什么都不知道关于MySQL)。
我能有没有聚集索引主键?
是。 至于你提到的一个主键约束是通过默认情况下,聚簇索引的支持。 你可以告诉SQL服务器通过声明约束如下与非聚集索引备份约束:
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
MySQL
和SQL-SERVER
是不同的RDBMS。 他们有不同的功能和不同的语法。
如果使用的是InnoDB, MySQL
总是让PK聚集索引。
SQL-SERVER
,但是,将让你没有创建一个PK CLUSTERED
关键字,让你使用它的另一个指标内代替。
在两种情况下,PrimaryKeys和索引(群集或不)可覆盖多个字段。