Můžete vytvořit UNIQUE index na sloupci BLOB, stačí zadat maximální délku indexu (což také znamená, že bude jedinečný pouze do tolika znaků).
Zvažte však použití VARBINARY, které vám umožní opravit délku a znamená, že nemůžete vložit delší pole, které by mohlo náhodně narušit jedinečné omezení. Viz https://dev.mysql.com/doc/ refman/5.6/en/binary-varbinary.html
Příklad, testováno 5.6.23:
mysql [localhost] {msandbox} (test) > create table t1 (a BLOB(16), UNIQUE INDEX `a`(`a`(16)));
Query OK, 0 rows affected (0.01 sec)
mysql [localhost] {msandbox} (test) > insert into t1 values('aaa');
Query OK, 1 row affected (0.01 sec)
mysql [localhost] {msandbox} (test) > insert into t1 values('aaa');
ERROR 1062 (23000): Duplicate entry 'aaa' for key 'a'
mysql [localhost] {msandbox} (test) >
mysql [localhost] {msandbox} (test) > create table t2(a VARBINARY(16), UNIQUE INDEX `a`(`a`));
Query OK, 0 rows affected (0.02 sec)