我在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),何时需要使用此括号重复,是否存在括号中可能包含不同列的名称的情况?
答案 0 :(得分:1)
您可以定义跨多个列的索引。想象一下,您的表格包含城市名称,并且您希望确保名称是唯一的,但当然您可以在不同的州和国家/地区使用相同名称的城市。您可以通过以下方式实现这一目标:
UNIQUE KEY uniq_state_city (state, city)
答案 1 :(得分:0)
第一个id
是索引的名称。括号中的第二个id
是列名。见create table