I have a table with a field a using encoding utf8 and collation utf8\_unicode\_ci:

```
CREATE TABLE dictionary (
    a varchar(128) NOT NULL
) DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

```

The collation utf8\_unicode\_ci is required for an efficient *case insensitive* search with extensions and ligations. For this purpose i have the index:

```
CREATE INDEX a_idx on dictionary(a);

```

Problem: Additionally i must ensure that all stored values of the field a are unique but in a *case sensitive* way.
German example: "blühen" and "Blühen" must both be stored in the table. But adding "Blühen" a second time should not be possible.

Is there a build-in functionality in MySQL to have both?

Unfortunately it seems not to be possible to set the collation for the index in MySQL 5.1.

Solutions to this problem include a uniqueness check before insert or a trigger. Both are far less elegant than using a unique index.