SFについても同様の質問がたくさんあることは知っていますが、私は新しい質問を正当化するのに十分なほど異なっていると思います。utf8_unicode_ciを持つutf8として単一の列を持つテーブルがあります。また、この列には、言語コードを示す別の列とともに一意のキーがあります。列のデータは、さまざまなスクリプト(さまざまなアクセントのあるラテン語、中国語、ロシア語など)に含まれています。
問題は、発音区別符号(つまり、スペイン語のanoとaño)だけが異なる意味の異なる2つの単語を入力したい場合があることです。utf8_unicode_ciは大文字と小文字の両方に依存しないため、これらは同じであると見なされ、1つだけ入力できます。それは最悪だ。理想的には、列全体を大文字と小文字を区別しないがアクセントを区別する照合に切り替えるだけですが、それは存在しないようです。多くの異なるものがこの列を使用しているので、大文字と小文字の区別で混乱することを恐れて、列のデフォルトの照合をutf8_binに変更したくありません。
したがって、この列にヒットする多くの既存のクエリでデフォルトの大文字と小文字の区別に影響を与えないが、発音区別符号のみが異なる単語を追加できるソリューションが必要です。アイデア?必要に応じて、一意キー制約のみをutf8_binに切り替えますが、表に大文字と小文字だけが異なる2つのものが必要ないため、切り替えたくありません。