我有这张桌子
CREATE TABLE `country` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
PRIMARY KEY (`id`),
KEY `name` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
我想添加一个唯一索引,以便该表不能包含重复的国家/地区。
修改:为了澄清,我希望name
列具有唯一值,但我还希望针对SELECT name FROM country WHERE name = ?
之类的查询进行优化。
如果我的表格允许重复国家/地区,我通常会使用INDEX
密钥来实现此目的。
我需要name
列上的两个索引(一个INDEX
和一个UNIQUE
),还是一个UNIQUE
索引可以完成这项工作?
答案 0 :(得分:1)
如果您希望数据库强制列name
包含UNIQUE值,则需要 UNIQUE KEY
代替 KEY
强>
如果您希望数据库允许name
的重复值,那么您拥有的KEY
就可以了。