标签: mysql utf-8 special-characters
似乎当我改变mysql表(在utf-8表/列上)时,它返回一个重复的条目错误。
示例:
ALTER TABLE name ADD UNIQUE(name)
错误:
Duplicate entry 'Adé' for key 'name_UNIQUE'
我认为这是因为我的数据库中的行跟随
Ade, Adé
是否可以使用特殊字符更改唯一的表格?
谢谢,
鲍勃
答案 0 :(得分:3)
您需要将列上的collation(或整个表或数据库 - 我认为连接范围不适用于唯一约束)设置为尊重“e”和“é”。有关不同排序规则设置可能产生的效果的示例,请参阅here。
假设您的字符集为utf8,您可以使用最安全的排序规则来避免对您的唯一约束产生误报,utf8_bin,其中两个字符串永远不会相等,除非它们是相同的字串。但是,你需要注意像unicode规范化这样的事情,否则你最终会得到两个相同的字符序列的键,它们在不同的规范化形式中会使它们不相等。只需要注意一点。
utf8
utf8_bin
答案 1 :(得分:1)
您可能希望使用=或LIKE
=
LIKE
LIKE BINARY
<强> More info here. 强>