MySQL में ऋणात्मक संख्याओं को रोकने के लिए, आपको INT UNSIGNED का उपयोग करने की आवश्यकता है। मान लें कि आपने एक स्तंभ के साथ एक तालिका बनाई है जैसे कि int यानी UserGameScores यहाँ
mysql> तालिका बनाएं रोकेंNegativeNumberDemo -> ( -> UserId int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> UserName varchar(20), -> UserGameScores int -> );क्वेरी ठीक है, 0 पंक्तियाँ प्रभावित (1.74 सेकंड)
अब यदि आपको इसमें ऋणात्मक संख्याओं को रोकने की आवश्यकता है, तो उसी कॉलम को INT UNSIGNED के साथ संशोधित करें
mysql> तालिका बदलें रोकेंNegativeNumberDemo कॉलम संशोधित करें UserGameScores INT UNSIGNED NOT NULL;क्वेरी ठीक है, 0 पंक्तियाँ प्रभावित (3.32 सेकंड) रिकॉर्ड:0 डुप्लिकेट:0 चेतावनियाँ:0
अब एक बार फिर तालिका विवरण की जाँच करें।
क्वेरी इस प्रकार है
mysql> desc preventNegativeNumberDemo;
निम्न आउटपुट है
<पूर्व>+----------------+------------------+----------+--- ---+-----------+----------------+| फील्ड | प्रकार | शून्य | कुंजी | डिफ़ॉल्ट | अतिरिक्त | -+-----------+----------------+| उपयोगकर्ता आईडी | इंट(11) | नहीं | पंचायती राज | नल | auto_increment || उपयोगकर्ता नाम | वर्कर(20) | हाँ | | नल | || UserGameScores | इंट(10) अहस्ताक्षरित | नहीं | | नल | | +---------------+----------------+3 पंक्तियों में सेट (0.00 सेकंड)अब यदि आप UserGameScores कॉलम के लिए ऋणात्मक संख्या सम्मिलित करने का प्रयास करते हैं तो MySQL एक त्रुटि देता है क्योंकि हमने इसे INT UNSIGNED के रूप में सेट किया है। आइए हम ऋणात्मक संख्या सहित कुछ मान सम्मिलित करें
mysql> रोकथाम में डालेंNegativeNumberDemo(UserName,UserGameScores) मान ('लैरी', 0); क्वेरी ठीक है, 1 पंक्ति प्रभावित (1.20 सेकंड) mysql> रोकने में डालेंNegativeNumberDemo(UserName,UserGameScores) मान ('माइक', -1 );त्रुटि 1264 (22003):पंक्ति 1mysql पर कॉलम 'UserGameScores' के लिए सीमा मान से बाहर> रोकथाम में डालेंNegativeNumberDemo(UserName,UserGameScores) मान ('सैम',-100);त्रुटि 1264 (22003):के लिए सीमा मूल्य से बाहर पंक्ति 1mysql पर कॉलम 'UserGameScores'> रोकने में डालेंNegativeNumberDemo(UserName,UserGameScores) मान ('जॉन',100); क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.84 सेकंड) mysql> रोकने में डालेंNegativeNumberDemo(UserName,UserGameScores) मान ('बॉब') ,200);क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.48 सेकंड)
जब हम ऋणात्मक मान डालने का प्रयास करते हैं तो उपरोक्त त्रुटि को देखें।
अब चयन कथन का उपयोग करके तालिका से सभी रिकॉर्ड प्रदर्शित करें। केवल धनात्मक अंक ही डाले जाएंगे
mysql> को रोकें *निगेटिव नंबर डेमो से चुनें;
निम्न आउटपुट है
<पूर्व>+----------+----------+----------------+| उपयोगकर्ता आईडी | उपयोगकर्ता नाम | UserGameScores |+-----------+----------+----------------+| 1 | लैरी | 0 || 2 | जॉन | 100 || 3 | बॉब | 200 |+-----------+----------+----------------+3 पंक्तियाँ सेट में (0.00 सेकंड)पूर्व>