MariaDB
 sql >> डेटाबेस >  >> RDS >> MariaDB

मारियाडीबी में डेटा डालने पर "त्रुटि 1136 (21S01):कॉलम गिनती पंक्ति 1 पर मूल्य गणना से मेल नहीं खाती" ठीक करें

यदि आप स्वयं को एक त्रुटि प्राप्त करते हुए पाते हैं जो कुछ इस तरह पढ़ती है "ERROR 1136 (21S01):कॉलम गणना पंक्ति में मान गणना से मेल नहीं खाती मारियाडीबी में, यह शायद इसलिए है क्योंकि आपने तालिका में डेटा डालने का प्रयास करते समय कॉलम में कॉलम की संख्या के लिए गलत संख्या में अभिव्यक्ति निर्दिष्ट की है।

दूसरे शब्दों में, आप बहुत सारे कॉलम या पर्याप्त कॉलम नहीं डालने का प्रयास कर रहे हैं।

ठीक करने के लिए, अपना INSERT समायोजित करें तालिका में मानों की सही संख्या सम्मिलित करने के लिए कथन।

आप अपने INSERT . में कॉलम को नाम भी दे सकते हैं स्टेटमेंट ताकि मारियाडीबी को पता चले कि प्रत्येक एक्सप्रेशन को किन कॉलम में डालने की जरूरत है।

त्रुटि का उदाहरण

मान लीजिए हमारे पास निम्न तालिका है:

+-------+---------+---------+
| PetId | PetName | PetType |
+-------+---------+---------+
|     1 | Fluffy  | Cat     |
|     2 | Tweet   | Bird    |
+-------+---------+---------+

निम्न कोड त्रुटि उत्पन्न करेगा:

INSERT INTO Pets VALUES ( 3, 'Wag', 'Dog', 'Brown' );

परिणाम:

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

इस मामले में, मैंने एक तालिका में चार स्तंभों के लिए डेटा सम्मिलित करने का प्रयास किया जिसमें केवल तीन स्तंभ हैं।

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

INSERT INTO Pets VALUES ( 3, 'Wag' );

परिणाम:

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

समाधान 1

स्पष्ट समाधान पंक्तियों की सही संख्या सम्मिलित करना है। इसलिए, हम अपना कोड इस प्रकार फिर से लिख सकते हैं:

INSERT INTO Pets VALUES ( 3, 'Wag', 'Dog' );

परिणाम:

Query OK, 1 row affected (0.010 sec)

समाधान 2

ऐसा करने का दूसरा तरीका उन कॉलमों को स्पष्ट रूप से नाम देना है जिनके लिए हम डेटा सम्मिलित करना चाहते हैं। इस तकनीक का उपयोग तालिका की तुलना में कम कॉलम सम्मिलित करने के लिए किया जा सकता है।

उदाहरण:

INSERT INTO Pets ( PetId, PetName ) VALUES ( 3, 'Wag' );

परिणाम:

Query OK, 1 row affected (0.005 sec)

इस पद्धति के परिणामस्वरूप एक अलग त्रुटि हो सकती है यदि कोई बाधा है जिसके लिए उस कॉलम के लिए मान को पारित करने की आवश्यकता होती है (उदाहरण के लिए, यदि तालिका में NOT NULL है। उस कॉलम पर बाधा)। इसलिए, आपको यह सुनिश्चित करना होगा कि ऐसा करते समय आप कॉलम पर किसी भी बाधा का पालन कर रहे हैं।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मारियाडीबी में एक तिथि से वर्ष, माह और दिन को अलग करने के 3 तरीके

  2. MySQL डेटाबेस समस्याओं का निवारण कैसे करें

  3. MySQL में लॉक वेट टाइमआउट से अधिक त्रुटि को कैसे ठीक करें

  4. मारियाडीबी क्लस्टर का उपयोग करके अमेज़ॅन एडब्ल्यूएस पर एक हॉट स्टैंडबाय बनाना

  5. मारियाडीबी में एक कॉलम का कैरेक्टर सेट और कॉलेशन सेट करें