关于Navicat导入数据库后设置主键的问题

binlangboy 2018-03-14 07:36:09
大家好!
我用Navicat导入.json格式的文件并设置’id‘为主键,紧接着系统提示我‘Duplicate entry 'XXX' for key 'PRIMARY'.
紧接着我去表里查看这段字符,发现并没有重复 而是和其他一个id有大小写的区别,比如有一个id是’ABC‘,另一个是‘aBC’。因为表的内容有几万行,而这样的情况有很多组,因此一个一个改不太现实,请问大家有什么比较好的办法吗?
谢谢!
...全文
1485 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjcxc 2018-03-14
  • 打赏
  • 举报
回复
指定排序规则为区分大小写的,比如 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;
binlangboy 2018-03-14
  • 打赏
  • 举报
回复
引用 1 楼 zjcxc 的回复:
指定排序规则为区分大小写的,比如 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;
你好 谢谢你的回复!我尝试了此方法,主键问题确实解决了。但是我用mysql和django框架连接后,在django admin显示的数据id出现了问题。本来id均是自定义的,例如,我这个表描述的是生物化学反应,其中一个id是‘11FTHFTl‘等等,但是在django admin显示的id均变成’r1111‘,'r1112'等依次递增的数字,请问是什么情况呢?

56,687

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧