BLOB列にUNIQUEインデックスを作成できます。インデックスの最大長を指定するだけです(つまり、その数の文字までしか一意になりません)。
ただし、代わりにVARBINARYを使用することを検討してください。これにより、長さを固定でき、一意の制約を誤って破る可能性のある長いフィールドを挿入できなくなります。 https://dev.mysql.com/doc/を参照してください。 refman / 5.6 / en / binary-varbinary.html
例、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)