आपको प्राथमिक कुंजी फ़ील्ड में NOT NULL जोड़ने की आवश्यकता नहीं है क्योंकि यह स्वचालित रूप से NOT NULL हो जाता है। प्राथमिक कुंजी NOT NULL और Unique Key दोनों का संयोजन है।
प्राथमिक कुंजी फ़ील्ड का डेमो यहां दिया गया है। आइए पहले एक टेबल बनाएं। तालिका बनाने की क्वेरी इस प्रकार है:
mysql> टेबल बनाएं NotNullAddDemo -> ( -> Id int AUTO_INCREMENT, -> PRIMARY KEY(Id) -> );क्वेरी ओके, 0 पंक्तियाँ प्रभावित (0.81 सेकंड)
उपरोक्त तालिका में, आपको प्राथमिक कुंजी फ़ील्ड में NOT NULL जोड़ने की आवश्यकता नहीं है क्योंकि MySQL आंतरिक रूप से इसे NOT NULL में परिवर्तित करता है। यह जाँचने के लिए कि यह सही है या नहीं, निम्न सिंटैक्स का उपयोग करें।
डीईएससी yourTableName;
आइए अब तालिका विवरण प्राप्त करने के लिए उपरोक्त सिंटैक्स की जाँच करें:
mysql> विवरण NotNullAddDemo;
निम्न आउटपुट है:
<पूर्व>+----------+-------------+-----+-----+---------+----- -----------+| फील्ड | प्रकार | शून्य | कुंजी | डिफ़ॉल्ट | अतिरिक्त |+----------+-------- ----------+| आईडी | इंट(11) | नहीं | पंचायती राज | नल | auto_increment |+----------+-----------+------+-----+---------+---------- ----------+1 पंक्ति में सेट (0.07 सेकंड)कॉलम नल को देखें, एक मान NO है जिसका अर्थ है कि कोई NULL मान नहीं है।
NOT NULL की जांच करने के लिए, आइए तालिका में कुछ NULL रिकॉर्ड डालें। यह NULL मान की अनुमति देगा लेकिन हर बार यह 1 से मान की गणना करता है। तालिका में रिकॉर्ड सम्मिलित करने के लिए क्वेरी।
mysql> NotNullAddDemo मानों (NULL) में डालें; क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.12 सेकंड) mysql> NotNullAddDemo मानों (NULL) में डालें; क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.45 सेकंड)
प्राथमिक कुंजी के लिए दो NULL मान डालने के बाद, यदि आप मान 1 डालने का प्रयास करते हैं, तो एक त्रुटि उत्पन्न होगी। ऐसा इसलिए है क्योंकि MySQL पहले NULL मान को 1 के रूप में और दूसरे NULL मान को 2 के रूप में गिनता है।
त्रुटि इस प्रकार है यदि आप अब 1 डालने का प्रयास करेंगे:
mysql> NotNullAddDemo मानों में सम्मिलित करें(1);ERROR 1062 (23000):कुंजी 'प्राथमिक' के लिए डुप्लिकेट प्रविष्टि '1'
यदि आप मान 3 डालते हैं तो यह स्वीकार करेगा:
mysql> NotNullAddDemo मानों में डालें (3); क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.21 सेकंड) mysql> NotNullAddDemo मानों (NULL) में डालें; क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.18 सेकंड)
चयन कथन का उपयोग करके तालिका से सभी रिकॉर्ड प्रदर्शित करें। क्वेरी इस प्रकार है:
mysql> NotNullAddDemo से *चुनें;
निम्न आउटपुट है:
+-----+| आईडी |+----+| 1 || 2 || 3 || 4 |+----+4 पंक्तियाँ सेट में (0.00 सेकंड)