MySQL:创建表时"KEY"代表什么?

cod*_*er9 0 mysql kohana

此代码提取来自KohanaJobs应用程序附带的database.sql文件.

CREATE TABLE IF NOT EXISTS `roles_users` (
  `user_id` int(10) unsigned NOT NULL,
  `role_id` int(10) unsigned NOT NULL,
  PRIMARY KEY  (`user_id`,`role_id`),
  KEY `fk_role_id` (`role_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;



CREATE TABLE IF NOT EXISTS `sessions` (
  `session_id` varchar(24) NOT NULL,
  `last_active` int(10) unsigned NOT NULL,
  `contents` text NOT NULL,
  PRIMARY KEY  (`session_id`),
  KEY `last_active` (`last_active`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Run Code Online (Sandbox Code Playgroud)

为什么只是KEY在上面使用过?它只是暗示它们被用作FK吗?

Mar*_*ers 5

当使用KEY时,INDEX只有另一个词.

KEY通常是INDEX的同义词.当在列定义中给出时,键属性PRIMARY KEY也可以被指定为KEY.这是为了与其他数据库系统兼容而实现的.

(资源)