大家好!
我用Navicat导入.json格式的文件并设置’id‘为主键,紧接着系统提示我‘Duplicate entry 'XXX' for key 'PRIMARY'.
紧接着我去表里查看这段字符,发现并没有重复 而是和其他一个id有大小写的区别,比如有一个id是’ABC‘,另一个是‘aBC’。因为表的内容有几万行,而这样的情况有很多组,因此一个一个改不太现实,请问大家有什么比较好的办法吗?
谢谢!

解决方案 »

  1.   

    指定排序规则为区分大小写的,比如 utf8 字符集用 utf8_bin
    create table xxx( c varchar(10) charset utf8 collate utf8_bin unique);
    insert into xxx values('a'),('A'); -- 这里是成功的,因为区分大小写
    -- 改成不区分大小写,就会失败
    alter table xxx modify c varchar(10) charset utf8 collate utf8_general_ci;
      

  2.   


    你好 谢谢你的回复!我尝试了此方法,主键问题确实解决了。但是我用mysql和django框架连接后,在django admin显示的数据id出现了问题。本来id均是自定义的,例如,我这个表描述的是生物化学反应,其中一个id是‘11FTHFTl‘等等,但是在django admin显示的id均变成’r1111‘,'r1112'等依次递增的数字,请问是什么情况呢?