0

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

4

1 回答 1

1

没有“简单”的解决方案——列排序规则定义了值的相等性和顺序。在不破坏唯一约束的情况下,您不能在列中同时拥有 apfel 和 äphel。

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

于 2012-06-14T07:49:46.717 回答