今天在做项目的过程中遇到了一个问题,mysql主键的大小写敏感问题。百度到的内容都是关于单个主键的大小写问题,由于自己的数据库出问题的表的主键是由id和name字段组成的联合主键,所以解决方法稍微有些不一样。在此记录一下这个问题及解决方法。
通过百度知道解决的基本方法是在设计表的时候添加binary。一开始想到的解决方法是在PRIMARY KEY (`app_id`, `name`)前面加上binary,但是这样行不通,出现语法错误。
解决方法:在相应字段的声明处增加binary,在使用PRIMARY KEY (`app_id`, `name`)声明联合主键就可以了。
例如:CREATE TABLE `NewTable` (
`app_id` int(11) NOT NULL AUTO_INCREMENT ,
`name` varchar(500) BINARY CHARACTER SET utf8 COLLATE utf8_bin NOT NULL ,
PRIMARY KEY (`app_id`, `name`),
)
已经创建存在的表可以通过语句修改:
ALTER TABLE 'haha' MODIFY COLUMN 'name' varchar(500) BINARY CHARACTER SET utf8 COLLATE utf8_bin NOT NULL;