MySQL密钥:PRIMARY KEY,FOREIGN KEY,KEY - 什么是“KEY”?

时间:2010-11-16 04:28:08

标签: mysql primary-key mysqldump

查看“mysqldump -d”并查看KEY的键,而不是“PRIMARY KEY”或“FOREIGN KEY”

什么是KEY?

示例:

CREATE TABLE IF NOT EXISTS `TABLE_001` (
  `COL_001` int(256) NOT NULL,
  `COL_002` int(256) NOT NULL,
  `COL_003` int(256) NOT NULL,
  `COL_004` int(256) NOT NULL,
  `COL_005` int(256) NOT NULL,
  `COL_006` int(256) NOT NULL,
  `COL_007` int(256) NOT NULL,
  `COL_008` int(256) NOT NULL,
  `COL_009` int(256) NOT NULL,
  `COL_010` int(256) NOT NULL,
  `COL_011` int(256) NOT NULL,
  `COL_012` int(256) NOT NULL,
  PRIMARY KEY  (`COL_001`),
  KEY `COL_002` (`COL_002`,`COL_003`),
  KEY `COL_012` (`COL_012`),
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

此外,当我创建此表的新版本时,将MyISAM更改为InnoDB还需要除“ENGINE = MyISAM”之外的任何其他更改为“ENGINE = InnoDB”吗?

2 个答案:

答案 0 :(得分:4)

KEY是索引声明的替代语法。 CREATE TABLE语句包括分别在COL_002和COL_012上创建两个索引。

  

...当我创建此表的新版本时,将MyISAM更改为InnoDB需要除“ENGINE = MyISAM”之外的任何其他更改为“ENGINE = InnoDB”吗?

不,这应该没问题,但要注意你不能在使用Innodb引擎的表上使用MySQL的本机全文搜索(FTS) - 它们必须是MyISAM才能在其中包含全文索引列。< / p>

答案 1 :(得分:2)

来自MySQL manual for CREATE TABLE syntax

  

KEY通常是INDEX的同义词。