【问题标题】:MySQL Change Collation Only on Insert or Unique KeyMySQL 仅在插入或唯一键上更改排序规则
【发布时间】:2012-06-13 17:44:27
【问题描述】:

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

【问题讨论】:

    标签: mysql unicode utf-8 collation


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2012-06-10
      • 1970-01-01
      • 1970-01-01
      • 2020-02-13
      • 2021-09-10
      • 2014-11-06
      • 2011-02-13
      • 2021-01-28
      • 2020-05-26
      相关资源
      最近更新 更多