2012-06-13 38 views
0

我有一個整理爲utf8_unicode_ci的列。我必須保持這一點,因爲有很多查詢已經針對它進行了編寫,所有這些都是假設排序的。我的問題是我想能夠插入不同口音的東西(即單獨使用apfel和äpfel)。因爲這個列上有一個唯一的鍵,而utf8_unicode_ci認爲apfel和äpfel是相同的,是否有一種簡單的方法,我可以只在唯一鍵約束上更改排序規則,或者只在插入到utf8_bin時才更改排序規則,以便我可以將內容該表僅在重音中有所不同而不改變列的整理?MySQL僅在插入或唯一鍵上更改排序規則

回答

1

沒有「簡單」的解決方案 - 列整理定義了相等性和值的順序。您不能在列中同時存在apfel和äphel,而不會破壞唯一約束。

你可以做的一件事是添加一個新的列,與utf8_bin進行比較,然後從第一列中刪除唯一的密鑰,並創建這個新的列密鑰。然後添加一個觸發器,將原始列中插入或更新的值複製到新列。

+0

這實際上是個好主意!謝謝! – Eli

相關問題