MySQL的show create table显示带有KEY的额外条目

5

我有一张表,它的主键是由 (X,Y,Z) 组成的联合主键。当我执行 show create table 命令时,会显示以下内容:

`X` int(10) unsigned NOT NULL,
`Y` int(10) unsigned NOT NULL,
`Z` int(11) NOT NULL,
`C` bigint(20) NOT NULL,
PRIMARY KEY (`X`,`Y`,`Z`),
KEY `Y` (`Y`),
KEY `Z` (`Z`),
CONSTRAINT `T_ibfk_1` FOREIGN KEY (`X`) REFERENCES `X_T` (`X`),
CONSTRAINT `T_ibfk_2` FOREIGN KEY (`Y`) REFERENCES `Y_T` (`ID`),
CONSTRAINT `T_ibfk_3` FOREIGN KEY (`Z`) REFERENCES `Z_T` (`Z`)

为什么我们会得到 KEY 'Y' ('Y')KEY 'Z' ('Z')?这是否暗示着什么?

3个回答

1

这是索引的名称和它所索引的字段。您可以为索引命名,使其更具描述性。

KEY `index name` (`fields`)

1
如果表是MySQL Innodb表,那么您应该知道InnoDB为每个外键约束创建一个索引,这些索引无法删除。因此,存在两个索引Y和Z,因为X已在主键中处理。

0

这意味着除了主键之外,还添加了另外两个索引。看起来这些键是在phpMyAdmin中创建的,因为当向单个字段添加索引时,默认使用列名作为键名。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接