2012-06-13 35 views
0

我有一个整理为utf8_unicode_ci的列。我必须保持这一点,因为有很多查询已经针对它进行了编写,所有这些都是假设排序的。我的问题是我想能够插入不同口音的东西(即单独使用apfel和äpfel)。因为这个列上有一个唯一的键,而utf8_unicode_ci认为apfel和äpfel是相同的,是否有一种简单的方法,我可以只在唯一键约束上更改排序规则,或者只在插入到utf8_bin时才更改排序规则,以便我可以将内容该表仅在重音中有所不同而不改变列的整理?MySQL仅在插入或唯一键上更改排序规则

回答

1

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

你可以做的一件事是添加一个新的列,与utf8_bin进行比较,然后从第一列中删除唯一的密钥,并创建这个新的列密钥。然后添加一个触发器,将原始列中插入或更新的值复制到新列。

+0

这实际上是个好主意!谢谢! – Eli

相关问题