http://dev.mysql.com/doc/refman /5.0/hi/create-index.html
"एक अद्वितीय सूचकांक एक बाधा बनाता है जैसे कि सूचकांक में सभी मान अलग-अलग होने चाहिए। एक त्रुटि तब होती है जब आप एक मौजूदा पंक्ति से मेल खाने वाले कुंजी मान के साथ एक नई पंक्ति जोड़ने का प्रयास करते हैं। यह बाधा NULL मानों पर लागू नहीं होती है सिवाय इसके कि BDB स्टोरेज इंजन। अन्य इंजनों के लिए, एक UNIQUE अनुक्रमणिका उन स्तंभों के लिए कई NULL मानों की अनुमति देती है जिनमें NULL हो सकता है।"
तो, नहीं, आप MySQL को NULL को एक अद्वितीय मान के रूप में मानने के लिए नहीं प्राप्त कर सकते हैं। मुझे लगता है कि आपके पास कुछ विकल्प हैं:आप अपने प्रश्न में जो सुझाव देते हैं वह कर सकते हैं और शून्य के बजाय "विशेष मूल्य" स्टोर कर सकते हैं, या आप तालिका के लिए बीडीबी इंजन का उपयोग कर सकते हैं। मुझे नहीं लगता कि व्यवहार वारंट में यह मामूली अंतर स्टोरेज इंजन का असामान्य विकल्प बनाता है, हालांकि।