Du kan skapa ett UNIKT index på en BLOB-kolumn, du behöver helt enkelt ange en maximal längd för indexet (vilket också betyder att det bara kommer att vara unikt upp till så många tecken).
Överväg dock att använda VARBINARY istället som låter dig fixa längden och innebär att du inte kan infoga ett längre fält som av misstag kan bryta den unika begränsningen. Se https://dev.mysql.com/doc/ refman/5.6/en/binary-varbinary.html
Exempel, testad 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)