2012-10-24 16 views
12

है मेरे पास 14000 से अधिक कथन के साथ एक MySQL फ़ाइल है। वे सब के सब एक तालिका में आवेषण हैं, और जब मैं कंसोल का उपयोग कर फ़ाइल आयात, यह निम्न त्रुटि फेंकता है:"कॉलम गिनती पंक्ति पर मूल्य गणना से मेल नहीं खाती है" लेकिन यह

ERROR 1136 (21S01) at line 1548: Column count doesn't match value count at row 45 

मुझे पता है कि त्रुटि दिखाई पंक्तियों स्तंभ नाम में निर्दिष्ट पंक्तियों से भिन्न हैं VALUES सूची में, लेकिन मैंने इसे कई बार चेक किया है और कॉलम की संख्या दोनों सूचियों में बिल्कुल समान है।

स्थिति 45 में पंक्ति है:

('00553', 'AAA', 'BBB', 'CCC', 'XXXXXXXXR', 'user address', 'spain', 'spain', '39212', '1900-01-21', '123456789', 'M', 'No disponible', 0, 'AAA', 'BBB ', 'CCC', 'XXXXXXXXR', NULL, '888993344', '', '', '', '', 'no', 'no') --> 26 columns 

और इसके साथ जुड़े डालने लाइन, ऊपर कई लाइनों है:

INSERT INTO `users` (`id_patient`, `name`, `surname1`, `surname2`, `dni`, `address`, `city`, `state`, `postal_code`, `birthday`, `telephone`, `sex`, `email`, `lopd_status`, `lopd_name`, `lopd_surname1`, `lopd_surname2`, `lopd_dni`, `lopd_as`, `mobile_phone`, `notes`, `job`, `company`, `place`, `active_citation`, `signature`) --> 26 columns 

मैं इस त्रुटि के लिए देखा है, लेकिन यह है कि यह केवल लगता है तब दिखाई देता है जब गिनती अलग होती है, लेकिन इस मामले में, यह वही है।

कोई विचार?

संपादित करें: उल्लेख करना भूल गया: अगर मैं एसपीएल स्टेटमेंट को सीधे phpmyadmin पर फेंक देता हूं, तो यह बिना किसी त्रुटि के लाइन को सही तरीके से जोड़ता है। यह केवल कमांड लाइन से चलाते समय दुर्घटनाग्रस्त हो जाता है, हालांकि इसके ऊपर के बयान डेटाबेस में सही ढंग से डाले जाते हैं और वे लगभग इस से समान होते हैं।

EDIT2: मैं 46 जब तक सभी लाइनों को हटा दिया है और जब मैं फ़ाइल मिली त्रुटियाँ लांच निम्नलिखित है:

ERROR 1136 (21S01) at line 1503: Column count doesn't match value count at row 45 

यह केवल लाइन बदल जाता है, लेकिन यह है कि लाइन डालने बयान है, जो है बाकी फाइल में अन्य INSERT कथन के समान ही। प्रीवियोस लाइन भी सही है।

+3

जांच लाइनों 44 और "शो से {डेटाबेस नाम} से चलाता है" 46 के रूप में अच्छी तरह से ... –

+0

मैं भी उन्हें देख लिया है और वे भी 26 कॉलम है। – Pask

+0

इस तालिका को देखने के लिए निर्माण तालिका विवरण कैसे बनाता है? –

उत्तर

10

मैं डेटा :-(आसपास डालने कोष्ठक की वजह से एक ऐसी ही समस्या का सामना करना पड़ा जाँच करें:

INSERT INTO Customers (Name,LastCredit,CreditDate) VALUES (<-- Here. 
    ("Nuclear Millitary Systems",500.0,CURRENT_DATE), 
    ("Evil Corporation",67890.95,"2012-02-12"), 
    ("Nuke Software Systems",5600.0,"2013-05-06"), 
    ("RR Millitary",600.0,"2013-05-06"), 
    ("Random Automation",560.0,"2012-05-01"), 
    ("Evil Data Systems",600.0,"2013-03-01") 
); 
1

फ़ाइल में विशेष छिपे हुए वर्णों की जांच करें। आप सोच सकते हैं कि फ़ाइल में सभी व्हाइटस्पेस रिक्त स्थान हैं, लेकिन कभी-कभी अन्य वर्ण किसी भी तरह से डालने को मार सकते हैं जिसे आप डेटा को देखकर समझ नहीं सकते हैं।

यदि अन्य सभी विफल हो जाते हैं, तो मैन्युअल रूप से INSERT को फिर से टाइप करें और इसे फ़ाइल में चलाएं ताकि यह देख सके कि यह अभी भी विफल रहता है या नहीं।

+0

मैंने पहले और बाद में लाइन में सभी विशेष पात्रों को हटा दिया है लेकिन त्रुटि जारी है। मैंने उस लाइन को और अगली एक अलग फ़ाइल में भी रखा है और MySQL उन्हें डेटाबेस में सही ढंग से सम्मिलित करता है। यह निराशाजनक शुरू हो रहा है ... – Pask

+0

इसके अलावा, एक फाइल के साथ mysql को खिलाकर 4 लाइनें हैं और इसकी निम्नलिखित 4 लाइनें भी ठीक हो जाती हैं :( – Pask

+0

मैंने फ़ाइल को phpmyadmin में आयात किया है लेकिन त्रुटि एक ही है। – Pask

9

मुझे एक ही त्रुटि का सामना करना पड़ रहा था। यह सिर्फ एक लापता कॉमा का मामला था। यदि डालने बयान में सभी आइटम अल्पविराम के द्वारा अलग कर रहे हैं

+1

यह बस था! YACPG - फिर भी एक और कॉपी-पेस्ट गोफअप :) – Santosh

3

मेरे मामले में मैं सम्मिलित करें पर एक ट्रिगर था स्तंभ बेमेल साथ गिनती :(&

3

मेरे मामले में, मेरा डेटाबेस तालिका एक और मेज पर जुड़े एक ट्रिगर है, और एक स्तंभ ट्रिगर तालिका में नहीं था।कुछ इस तरह:

Table1 कॉलम: UserAccountID, दस्तावेज़ प्रकार, अनुमतियों स्थिति

ट्रिगर तालिका 2 कॉलम: संशोधन संख्या, संशोधन स्थिति, UserAccountID, अनुमतियाँ, स्थिति

तो में तालिका 2, "दस्तावेज़ प्रकार" कॉलम गुम था। द्वारा

डीबी में चलाता चेक

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