在CREATE TABLE语句中,为什么以这种方式使用“KEY”? KEY`IDX_ATTRIBUTE_LABEL_ATTRIBUTE`(`attribute_id`)

时间:2011-04-13 09:13:55

标签: mysql sql key

我正在尝试理解这个表结构。我从来没有见过这种说法 这是某种外键

没有像* IDX_ATTRIBUTE_LABEL_ATTRIBUTE *

这样的表格
CREATE TABLE IF NOT EXISTS `eav_attribute_label (
  `attribute_label_id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `attribute_id` smallint(5) unsigned NOT NULL DEFAULT '0',
  `store_id` smallint(5) unsigned NOT NULL DEFAULT '0',
  `value` varchar(255) NOT NULL DEFAULT '',
  PRIMARY KEY (`attribute_label_id`),
  KEY `IDX_ATTRIBUTE_LABEL_ATTRIBUTE` (`attribute_id`),
  KEY `IDX_ATTRIBUTE_LABEL_STORE` (`store_id`),
  KEY `IDX_ATTRIBUTE_LABEL_ATTRIBUTE_STORE` (`attribute_id`,`store_id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;

感谢

1 个答案:

答案 0 :(得分:1)

在这种情况下,KEY是INDEX的同义词,它不是外键。

注意 - attribute_id上的索引是多余的,因为有复合索引(attribute_idstore_id)。