我有一个带有组合主键(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')
?这有什么意义吗?
答案 0 :(得分:1)
索引的名称及其索引的字段。您可以为索引命名,使其更具描述性。
KEY `index name` (`fields`)
答案 1 :(得分:1)
如果表是MySQL Innodb表,那么您应该知道InnoDB为每个外键约束创建一个索引,该索引无法删除。因此,两个索引Y和Z,因为X在主键中被照顾
答案 2 :(得分:0)
这意味着除了主键之外还添加了两个其他索引。看起来密钥是在phpMyAdmin中创建的,因为当索引添加到单个字段时,它默认使用列名作为键名。