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

时间:2012-02-28 01:12:11

标签: mysql mysql-management

我有一个带有组合主键(X,Y,Z)的表,当我显示创建表时,它确实

`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 个答案:

答案 0 :(得分:1)

索引的名称及其索引的字段。您可以为索引命名,使其更具描述性。

KEY `index name` (`fields`)

答案 1 :(得分:1)

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

答案 2 :(得分:0)

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