दिलचस्प पोस्ट
पीएसटी / सीईएसटी / यूटीसी / आदि के समय क्षेत्र के साथ दिनांक समय पार्स करें फ़ंक्शन डिफ़ॉल्ट सेटिंग आर पर एक परियोजना विशिष्ट आधार Parallelizing GDI + छवि रीसाइज़िंग। नेट संख्या को दो दशमलव स्थानों पर स्वरूपित करें जावास्क्रिप्ट और यहां तक ​​कि / अजीब क्लास पीढ़ी का उपयोग किए बिना जेब्रा स्ट्रिप्स को HTML तालिका पर कैसे बनाया जाए? JQuery में XML क्रॉस-डोमेन पार्स कैसे करें? क्या किसी को Wiktionary का विश्लेषण है? डेस / विंडोज न्यूलाइन (सीआरएलएफ) को यूनिक्स न्यूलाइन (\ n) को बैश लिपि में कैसे रूपांतरित करना है? एक JTable सेल क्लिक-सक्षम में एक JButton कैसे बनाने के लिए? मैं एक दिन जावा में एक दिन कैसे बढ़ा सकता हूं? एंड्रॉइड ग्रैडल में संस्करण कोड को कैसे सुरक्षित रखें पायथन का उपयोग कर एक सीएसवी फ़ाइल संपादित करते समय हेडर छोड़ें बाइट सरणी छवि वस्तु के लिए जावा में, क्या यह जांचना संभव है कि क्या स्ट्रिंग केवल एएससीआईआई है? ड्रॉएबल में कैसे टेक्स्ट डालें?

क्या MySQL अद्वितीय बाधाओं पर शून्य मानों की उपेक्षा करता है?

मेरे पास एक ईमेल कॉलम है जो मैं अद्वितीय होना चाहता हूं लेकिन मैं यह भी शून्य मानों को स्वीकार करना चाहता हूं। क्या मेरे डेटाबेस में 2 नल ईमेल हैं?

Solutions Collecting From Web of "क्या MySQL अद्वितीय बाधाओं पर शून्य मानों की उपेक्षा करता है?"

हां, MySQL एक अद्वितीय बाधा के साथ एक कॉलम में कई नल की अनुमति देता है।

CREATE TABLE table1 (x INT NULL UNIQUE); INSERT table1 VALUES (1); INSERT table1 VALUES (1); -- Duplicate entry '1' for key 'x' INSERT table1 VALUES (NULL); INSERT table1 VALUES (NULL); SELECT * FROM table1; 

परिणाम:

 x NULL NULL 1 

यह सभी डेटाबेस के लिए सही नहीं है उदाहरण के लिए SQL सर्वर केवल एक अनन्य बाधा है जो एक कॉलम में एक एकल शून्य मान की अनुमति देता है।

डॉक्स से :

"एक अद्वितीय अनुक्रमणिका कॉलम के लिए कई नल मान को अनुमति देता है जिसमें नल हो सकता है"

यह सभी इंजनों पर लागू होता है लेकिन बीडीबी

MySQL के लिए, अद्वितीय बाधाएं शून्य मूल्यों को अनदेखा करती हैं लेकिन इसे नहीं करना चाहिए।

MySQL बग रिपोर्ट # 8173 पर एक टिप्पणी है:

एएनएसआई एसक्यूएल -92 मानक ने आदेश दिया कि दो नल मूल्यों को "अलग नहीं" माना जाना चाहिए। एएनएसआई मानक में भिन्न नहीं की परिभाषा में किसी भी दो मान शामिल हैं जो समानता परीक्षण के लिए TRUE या किसी भी दो NULLs को वापस आते हैं। यही कारण है कि ग्रुप द्वारा सभी एकल विभाजनों में समूह नल

अद्वितीय बाधा के हिस्से के रूप में MySQL को शून्य मान स्वीकार कर लेना चाहिए।

नलनीय अद्वितीय बाधाओं से बचें। आप हमेशा स्तंभ को एक नई तालिका में रख सकते हैं, इसे गैर-निरर्थक और अनोखा बना सकते हैं और फिर उस तालिका को तब आबाद कर सकते हैं जब आपके पास उसके लिए कोई मान होता है यह सुनिश्चित करता है कि स्तंभ पर कोई भी मुख्य निर्भरता सही ढंग से लागू की जा सकती है और किसी भी समस्या से बच सकती है जो नल के कारण हो सकती है।

मैं अनिश्चित हूँ अगर लेखक मूल रूप से बस पूछ रहा था कि क्या यह नकली मूल्यों की अनुमति देता है या नहीं, अगर पूछे जाने पर एक निहित प्रश्न था, " UNIQUE कैसे उपयोग करते समय डुप्लिकेट NULL मूल्यों को अनुमति दें?" या "केवल एक UNIQUE मूल्य की अनुमति कैसे है?"

प्रश्न का पहले ही उत्तर दिया जा चुका है, हाँ, आप UNIQUE सूचकांक का उपयोग करते समय नकल NULL मूल्य प्राप्त कर सकते हैं।

चूंकि मैंने इस जवाब पर ठुकरा दिया क्योंकि "एक UNIQUE मूल्य की अनुमति देने के लिए।" किसी और के लिए जो इस प्रश्न के दौरान ठोकर खा सकता है, वही मेरा जवाब आपके लिए है …

MySQL में आपके पास एक UNIQUE NULL मान नहीं हो सकता है, हालांकि खाली स्ट्रिंग के मूल्य के साथ डालने से आपके पास एक UNIQUE खाली मूल्य हो सकता है।

चेतावनी: स्ट्रिंग के अलावा संख्यात्मक और प्रकार 0 या किसी अन्य डिफ़ॉल्ट मान को डिफ़ॉल्ट हो सकता है।