MySQL仅在插入或唯一键上更改排序规则

时间:2012-06-13 17:44:27

标签: mysql unicode utf-8 collation

我有一个整理为utf8_unicode_ci的列。我必须保留这个,因为已经有很多查询已经针对它写了所有假设整理。我的问题是我希望能够插入不同口音的东西(分别是apfel和äpfel)。因为这个列上有一个唯一的键,并且utf8_unicode_ci认为apfel和ppfel是相同的,有一种简单的方法我可以仅在唯一键约束上更改排序规则,或者仅在插入到utf8_bin时更改排序规则,这样我就可以进入只更改重音而不改变列的排序规则的表格?

1 个答案:

答案 0 :(得分:1)

没有“简单”的解决方案 - 列整理定义了值的相等性和顺序。你不能在列中同时拥有apfel和äphel而不会破坏唯一约束。

您可以做的一件事是添加一个新列,使用utf8_bin进行整理,然后从第一列中删除唯一键并创建此新列键。然后添加一个触发器,将原始列中插入或更新的值复制到新列。