2011-10-15 9 views
5

मेरे पास एक MySQL डेटाबेस है, और मैं इसे एक टेम्पोरोरली स्टोर कैप्चा मान के रूप में उपयोग कर रहा हूं। इसमें int(11) फ़ील्ड के साथ एक ऑटो वृद्धि हुई आईडी कुंजी है। क्या होता है यदि यह मान 11 अंकों से बड़ा हो जाता है?mysql int फ़ील्ड 11 अंकों से बड़ा बढ़ रहा है

उत्तर

10

एक ठेठ INT 4 बाइट का उपयोग करता है, तो यह संख्या स्टोर कर सकते हैं:
प्रवेश किया गया: -2147483648 to 2147483647
अहस्ताक्षरित: 0 to 4294967295

एक BIGINT 8 बाइट्स का उपयोग करता है, तो यह संख्या स्टोर कर सकते हैं:
प्रवेश किया गया: -9223372036854775808 to 9223372036854775808
अहस्ताक्षरित: 0 to 18446744073709551615

0

int(11) केवल पहले 11 अंक स्वीकार करेगा। उनमें से बाकी को त्याग दिया जाएगा। आप अपनी तालिका को संशोधित कर सकते हैं और अपनी आईडी डेटाटाइप को int से bigint में बदल सकते हैं।

उम्मीद है कि इससे मदद मिलती है।

5

यह संख्या (01,231,) कॉलम रेंज के साथ बिल्कुल कुछ नहीं है - [SIGNED] INTEGER एक सीमा (-2147483648 - 2147483647) परिभाषित करता है।

कोष्ठक के भीतर संख्या केवल ZEROFILL के साथ संयुक्त होने पर उपयोग की जा रही है। फिर यह प्रदर्शित संख्या की "लंबाई" को परिभाषित करता है, यानी। मूल्य 275552स्ट्रिंग00000275552 के रूप में वापस कर दिया जाएगा।

0

जैसा कि अन्य ने कहा है, आपको 11 अंक नहीं मिलेगा। जब आप अधिकतम मूल्य तक पहुंचते हैं, तो उससे अधिक होने वाले सभी मानों का इलाज किया जाएगा जैसे कि वे अधिकतम मूल्य थे। auto_increment क्षेत्रों के मामले में, यह विफल जब तक आप एक BIGINT करने के लिए स्तंभ प्रकार बदलने के भविष्य की सभी आवेषण का कारण होगा: जब आप अधिकतम मूल्य तक पहुंचने

ERROR 1062 (23000): Duplicate entry '4294967295' for key 1

0

, यह से अधिक सभी मूल्यों के रूप में अगर माना जाएगा वे अधिकतम मूल्य थे। Auto_increment फ़ील्ड के मामले में, यह सभी भविष्य के आवेषण विफल होने का कारण बन जाएगा जब तक आप कॉलम प्रकार को बिगिनट में बदल नहीं देते:

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