Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> MySql

MySQL ERROR 1406 के लिए फिक्स:कॉलम के लिए डेटा बहुत लंबा है ”लेकिन ऐसा नहीं होना चाहिए?

<घंटा/>

यह त्रुटि तब हो सकती है जब आप अनुमत सीमा से अधिक डेटा सेट करने का प्रयास करते हैं। उदाहरण के तौर पर, आप स्ट्रिंग को बिट प्रकार के कॉलम में संग्रहीत नहीं कर सकते क्योंकि वर्चर या स्ट्रिंग बिट डेटा प्रकार से अधिक आकार लेती है।

आपको बिट टाइप कॉलम के लिए निम्न सिंटैक्स का उपयोग करने की आवश्यकता है:

anyBitColumnName=b '1'ORanyBitColumnName=b '0'

उपरोक्त वाक्य रचना को समझने के लिए, आइए एक तालिका बनाते हैं। तालिका बनाने की क्वेरी इस प्रकार है:

mysql> तालिका बनाएं IncaseentialDemo -> ( -> Id int NOT NULL AUTO_INCREMENT, -> Name varchar(10), -> PRIMARY KEY(Id) -> );क्वेरी ओके, 0 पंक्तियाँ प्रभावित (0.70 सेकंड) 

इंसर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें। रिकॉर्ड डालने की क्वेरी इस प्रकार है:

mysql> ErrorDemo (नाम, isStudent) मान ('जॉन', 1) में डालें; क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.18 सेकंड) mysql> ErrorDemo में डालें (नाम, छात्र है) मान ('सैम', 0);क्वेरी ओके, 1 पंक्ति प्रभावित (0.21 सेकंड) mysql> ErrorDemo (नाम, isStudent) मान ('माइक', 0) में डालें; क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.16 सेकंड) mysql> ErrorDemo में डालें (नाम, छात्र है) मान ('लैरी', 1); क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.23 सेकंड) mysql> ErrorDemo में डालें (नाम, छात्र है) मान ('कैरोल', 1); क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.11 सेकंड) mysql> ErrorDemo (नाम, isStudent) मान ('रॉबर्ट', 0) में डालें; क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.17 सेकंड) mysql> ErrorDemo में डालें (नाम, छात्र है) मान ('जेम्स', 1); क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.18 सेकंड) mysql> ErrorDemo (नाम, isStudent) मान ('बॉब', 1) में डालें; क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.19 सेकंड) mysql> ErrorDemo (नाम, छात्र) मानों में डालें ('डेविड' ,1);क्वेरी ओके, 1 पंक्ति प्रभावित (0.15 सेकंड)mysql> ErrorDemo(Name,isStudent) मानों में डालें('रिकी',0);क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.17 सेकंड)

चयन कथन का उपयोग करके तालिका से सभी रिकॉर्ड प्रदर्शित करें। क्वेरी इस प्रकार है:

mysql> ErrorDemo से *चुनें;

निम्न आउटपुट है:

<पूर्व>+-----+--------+----------+| आईडी | नाम | isStudent |+-----+-----------+-----------+| 1 | जॉन | || 2 | सैम | || 3 | माइक | || 4 | लैरी | || 5 | कैरल | || 6 | रॉबर्ट | || 7 | जेम्स | || 8 | बॉब | || 9 | डेविड | || 10 | रिकी | |+----+--------+----------+10 पंक्तियों में सेट (0.00 सेकंड)

वास्तविक नमूना आउटपुट स्नैपशॉट इस प्रकार है:

MySQL ERROR 1406 के लिए फिक्स:कॉलम के लिए डेटा बहुत लंबा है ”लेकिन ऐसा नहीं होना चाहिए?

त्रुटि निम्नलिखित है जैसा कि ऊपर चर्चा की गई है। यह निम्न क्वेरी में उत्पन्न होता है:

mysql> अपडेट ErrorDemo set isStudent='1' जहां Id=9;ERROR 1406 (22001):पंक्ति 1 पर कॉलम 'isStudent' के लिए डेटा बहुत लंबा है

उपरोक्त त्रुटि से बचने के लिए, आपको '1' से पहले b उपसर्ग करना होगा। अब क्वेरी इस प्रकार है:

mysql> अपडेट ErrorDemo set isStudent=b'1' जहां Id=9;क्वेरी ठीक है, 0 पंक्तियाँ प्रभावित (0.00 सेकंड)पंक्तियाँ मिलान:1 परिवर्तित:0 चेतावनियाँ:0

चयन कथन का प्रयोग करते हुए एक बार फिर तालिका अभिलेखों की जाँच करें। क्वेरी इस प्रकार है:

mysql> ErrorDemo से *चुनें;

निम्न आउटपुट है:

<पूर्व>+-----+--------+----------+| आईडी | नाम | isStudent |+-----+-----------+-----------+| 1 | जॉन | || 2 | सैम | || 3 | माइक | || 4 | लैरी | || 5 | कैरल | || 6 | रॉबर्ट | || 7 | जेम्स | || 8 | बॉब | || 9 | डेविड | || 10 | रिकी | |+----+--------+----------+10 पंक्तियों में सेट (0.00 सेकंड)

वास्तविक नमूना आउटपुट स्नैपशॉट इस प्रकार है:

MySQL ERROR 1406 के लिए फिक्स:कॉलम के लिए डेटा बहुत लंबा है ”लेकिन ऐसा नहीं होना चाहिए?

छात्र कॉलम देखें।

अब हम उसी आईडी को 0 के मान से अपडेट करेंगे। यह संबंधित आईडी के साथ एक रिक्त मान देगा। क्वेरी इस प्रकार है:

mysql> अद्यतन ErrorDemo set Name='Maxwell', isStudent=b'0' जहाँ Id=9;क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.16 सेकंड)पंक्तियाँ मिलान:1 परिवर्तित:1 चेतावनियाँ:0

ऊपर अद्यतन विशेष पंक्ति के रिकॉर्ड की जाँच करें। यहां आईडी 9 है। अब पंक्ति को रिकॉर्ड आईडी 9 के साथ अपडेट किया गया है। क्वेरी इस प्रकार है:

mysql> ErrorDemo से * चुनें जहां Id=9;

निम्न आउटपुट है:

+-----+---------+----------+| आईडी | नाम | isStudent |+-----+-----------+-----------+| 9 | मैक्सवेल | |+----+---------+----------+1 पंक्ति सेट में (0.00 सेकंड)

  1. कनेक्टर के लिए क्लास पथ पर सेट करने के लिए जावा MySQL कनेक्शन में कनेक्टिविटी त्रुटि को ठीक करें?

    ठीक करने के लिए, आपको MySQL कनेक्टर को Java क्लासपाथ पर रखना होगा। आप जिस आईडीई का उपयोग कर रहे हैं उसके प्रोजेक्ट फ़ोल्डर में कनेक्टर की जार फ़ाइल आयात करें। क्लासपाथ रखने के लिए स्नैपशॉट यहां दिया गया है - आइए अब जावा में MySQL के साथ कनेक्टिविटी के लिए कोड देखें - यह निम्नलिखित आउटपुट देगा

  1. विशिष्ट स्तंभ मानों के लिए एकल MySQL क्वेरी में एकाधिक गणना प्राप्त करें

    इसके लिए, आप विशिष्ट कॉलम के लिए पैरामीटर मान के साथ कुल फ़ंक्शन योग () का उपयोग कर सकते हैं। आइए पहले एक टेबल बनाएं - टेबल बनाएं DemoTable1790 (Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, Name varchar(20), Score int);क्वेरी ठीक, 0 पंक्तियाँ प्रभावित (0.94 सेकंड) इंसर्ट कमांड का उपयोग करके टेबल मे

  1. एकल MySQL क्वेरी में सभी कॉलम नामों के लिए 'उपनाम' सेट करें

    कॉलम नामों के लिए उपनाम सेट करने के लिए, सिंटैक्स इस प्रकार है - अपना कॉलमनाम1 किसी भी उपनामनाम1 का चयन करें, अपने कॉलमनाम2 को अपने टेबलनाम से किसी भी उपनाम का चयन करें; ऊपर दिए गए सिंटैक्स को समझने के लिए, आइए एक टेबल बनाएं - );क्वेरी ओके, 0 पंक्तियाँ प्रभावित (0.70 सेकंड) इंसर्ट कमांड का उपयोग