查看“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”吗?
答案 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的同义词。