如果是这样 - 这张桌子必须改变什么?
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;
答案 0 :(得分:19)
如果您的意思是区分大小写,那么:
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(不区分大小写):
ALTER TABLE `contestants` DEFAULT CHARACTER SET latin1 COLLATE latin1_general_ci
请注意,表级仅影响新列。
对于数据库级别do(不区分大小写):
ALTER DATABASE `database_name` CHARACTER SET latin1 COLLATE latin1_general_ci
请注意,数据库级别仅影响新表。
答案 1 :(得分:2)
是的,对所涉及的列使用不区分大小写的排序规则。
答案 2 :(得分:0)
这在Mysql 5.5中适用于我
ALTER TABLE `contestants` MODIFY
`ContestantName` VARCHAR(50)
CHARACTER SET latin1
COLLATE latin1_bin;