आप BLOB कॉलम पर एक UNIQUE इंडेक्स बना सकते हैं, आपको बस इंडेक्स के लिए अधिकतम लंबाई निर्दिष्ट करने की आवश्यकता है (जिसका अर्थ यह भी है कि यह केवल कई वर्णों तक अद्वितीय होगा)।
हालाँकि, इसके बजाय VARBINARY का उपयोग करने पर विचार करें जो आपको लंबाई तय करने की अनुमति देता है और इसका मतलब है कि आप एक लंबा फ़ील्ड सम्मिलित नहीं कर सकते हैं जो गलती से अद्वितीय बाधा को तोड़ सकता है। देखें https://dev.mysql.com/doc/ refman/5.6/hi/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)