我在phpMyAdmin中创建了一个表。导出MySQL数据库时,惟一键被定义为UNIQUE KEY `id` (`id`)
,并在括号中重复列名:
CREATE TABLE IF NOT EXISTS `beitraege` (
`id` smallint(5) unsigned NOT NULL AUTO_INCREMENT, // smallint? (65000!)
...
PRIMARY KEY (`id`),
UNIQUE KEY `id` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
为什么在括号中重复列名?那是什么意思?在MySQL中创建一个表(而不是使用phpMyAdmin),我什么时候需要使用这个括号重复,在某些情况下,括号可能包含不同列的名称?
发布于 2016-04-10 08:37:44
可以定义跨越多列的索引。假设您的表包含城市名称,并且希望确保名称是唯一的,但是当然,您可以在不同的州和国家拥有同名的城市。你可以通过以下方式实现这一点:
UNIQUE KEY uniq_state_city (state, city)
发布于 2016-04-10 08:36:19
第一个id
是索引的名称。括号中的第二个id
是列名。请参阅创建表
https://stackoverflow.com/questions/36527569
复制相似问题