2009-08-28 22 views
114

में खाली मानों की अनुमति देती है मेरे पास एक फ़ील्ड है जो उत्पाद कोड संग्रहीत करता है। कोड अद्वितीय हैं, लेकिन कुछ उत्पादों में बस एक कोड नहीं है। मैं कोड का आविष्कार नहीं कर सकता क्योंकि वे प्रदाता कोड हैं।अद्वितीय बाधा जो MySQL

क्या इस तरह की बाधा MySQL में संभव है?

मैं संग्रहित प्रक्रियाओं और ट्रिगर्स के साथ एक नोब हूं, इसलिए यदि समाधान में से कोई एक शामिल है, तो कृपया धैर्य रखें।

अद्यतन: कॉलम शून्य नहीं है। यही कारण है कि मैं ऐसा करने में असमर्थ था।

+0

की संभावित डुप्लिकेट [MySQL अद्वितीय की कमी पर शून्य मान की उपेक्षा करता है?] (Http://stackoverflow.com/questions/3712222/does-mysql-ignore-null-values-on-unique-constraints) –

+0

@AmirAliAkbari यह हास्यास्पद कैसे एक दूसरे के लिए ये दो लिंक "संभावित डुप्लिकेट" के रूप में। हालांकि, यह एक पुराना है। :) – Pijusn

उत्तर

174

हाँ, आप यह कर सकते हैं। MySQL reference (version 5.5) देखें।

एक अद्वितीय सूचकांक एक बाधा उत्पन्न करता है जैसे कि सूचकांक में सभी मान अलग-अलग होना चाहिए। एक त्रुटि तब होती है जब आप किसी मौजूदा पंक्ति से मेल खाने वाले कुंजी मान के साथ एक नई पंक्ति जोड़ने का प्रयास करते हैं। सभी इंजनों के लिए, एक यूनिक इंडेक्स कॉलम के लिए कई नल मानों की अनुमति देता है जिसमें न्यूल हो सकता है।

+7

धन्यवाद। मुझे इसे nullable बनाना है –

+0

django मॉडल में यह समस्या थी। इसे बेकार काम करना। धन्यवाद – Shrey

8

MySQL अभी भी एक अद्वितीय कॉलम में NULL का मान रखने के लिए कई पंक्तियों की अनुमति देता है।

+0

धन्यवाद। मुझे इसे कमजोर बनाना है –

+0

यह कैसे संभव है? –

+0

@MianAnjum बोल्ड: तालिका 'टेबल' ('key' int (11) नल ऑटोऑक्शनक्रिएशन, 'फ़ील्ड' टिनिंट (1) ** डिफॉल्ट न्यूल **) –

13

हां, यदि आप उत्पाद कोड कॉलम को शून्य बनाते हैं (NOT NULL के साथ घोषित नहीं किया गया है), तो अनन्य कुंजी NULL उत्पाद कोड के साथ कई पंक्तियों की अनुमति देगी।

+0

धन्यवाद। मुझे इसे बेकार बनाना है –

संबंधित मुद्दे