在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我添加了有关在表和数据库级更改它的信息。