在Mysql 5.1.x中,有没有办法使唯一索引不区分大小写?

在Mysql 5.1.x中,有没有办法使唯一索引不区分大小写?,mysql,unique-index,Mysql,Unique Index,如果是-此表中必须更改什么 CREATE TABLE contestants ( idContestants int(10) unsigned NOT NULL AUTO_INCREMENT, idEvent int(10) unsigned NOT NULL, ContestantName varchar(50) DEFAULT NULL, PRIMARY KEY (idContestants), UNIQUE KEY Index_UniqueNam

如果是-此表中必须更改什么

CREATE TABLE  contestants 
( 
  idContestants  int(10) unsigned NOT NULL AUTO_INCREMENT,
  idEvent        int(10) unsigned NOT NULL,
  ContestantName  varchar(50) DEFAULT NULL,
  PRIMARY KEY (idContestants),
  UNIQUE KEY Index_UniqueName (idEvent,ContestantName),
)
ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;

可以,对涉及的列使用不区分大小写的排序规则


如果你是说区分大小写,那么:

ALTER TABLE `contestants` CHANGE `ContestantName` `ContestantName` VARCHAR( 50 )
CHARACTER SET latin1 COLLATE latin1_bin NULL DEFAULT NULL 
ALTER TABLE `contestants` CHANGE `ContestantName` `ContestantName` VARCHAR( 50 )
CHARACTER SET latin1 COLLATE latin1_general_ci NULL DEFAULT NULL 
如果您的意思是不区分大小写,那么:

ALTER TABLE `contestants` CHANGE `ContestantName` `ContestantName` VARCHAR( 50 )
CHARACTER SET latin1 COLLATE latin1_bin NULL DEFAULT NULL 
ALTER TABLE `contestants` CHANGE `ContestantName` `ContestantName` VARCHAR( 50 )
CHARACTER SET latin1 COLLATE latin1_general_ci NULL DEFAULT NULL 
对于表级do(不区分大小写):

请注意,表级别仅影响新列

对于数据库级do(不区分大小写):


请注意,数据库级别只影响新表。

这在Mysql 5.5中对我很有效

ALTER表`参赛者'修改
`参赛者姓名'VARCHAR(50)
拉丁字符集1
整理拉丁文1_bin;

什么是“大小写本能”意思?你的意思是不区分大小写吗?需要注意的是,这是一个列级排序规则,最初我读得太快,认为它是一个表级排序规则,对我不起作用。@ScottJungwirth我添加了有关在表和数据库级更改它的信息。