Bạn có thể tạo chỉ mục DUY NHẤT trên cột BLOB, bạn chỉ cần chỉ định độ dài tối đa cho chỉ mục (điều đó cũng có nghĩa là nó sẽ chỉ là duy nhất tối đa nhiều ký tự).
Tuy nhiên, hãy xem xét việc sử dụng VARBINARY để thay thế cho phép bạn sửa độ dài và có nghĩa là bạn không thể chèn một trường dài hơn có thể vô tình phá vỡ ràng buộc duy nhất. Xem https://dev.mysql.com/doc/ refman / 5.6 / en / binary-varbinary.html
Ví dụ, được thử nghiệm trên 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)