首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mysql唯一索引不能在特定的umlaut上工作

Mysql唯一索引不能在特定的umlaut上工作
EN

Stack Overflow用户
提问于 2010-07-26 05:25:58
回答 1查看 1.9K关注 0票数 11

我有一个users表,其中有一个名为‘昵称’的列,utf-8编码,varchar(20),表在InnoDB中。有两个唱片,一个有个昵称= 'gunni‘,另一个叫做= 'günni’。当我试图将唯一索引应用于本专栏时,mysql给出了以下错误:

错误1062 (23000),在第263行:重复输入'gunni‘为键2

我检查了数据,只有一个记录的名字是'gunni',如果我将'günni‘记录更改为其他的东西,那么再次应用唯一的索引,一切都很好。

为什么'günni‘和'gunni’是复制的?下面是它们的十六进制值,我用mysql的十六进制()函数获得了这个值:

gunni -> 67756E6E69

günni -> 67C3BC6E6E69

很明显他们不一样。为什么mysql将这2视为相同的呢?还是有什么是我不知道的唯一索引?甚至,这可能是mysql的错误吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-07-26 05:30:07

这是因为你所用的校对。

任何以_ci结尾的都是不区分大小写的(也是重音/不敏感的)。所以是的,MySQL会把"gunni“和”gunni“看作同样的事情,除非你改变了你的校对。

博士:http://dev.mysql.com/doc/refman/5.0/en/charset-table.html

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3332387

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档