2012-06-10 8 views
5

से मेल खाती है MySQL इस त्रुटि को जारी कर रहा है जब मैं क्वेरी क्वेरी निष्पादित करने का प्रयास करता हूं जहां कॉलम गिनती मेल खाता है।MySQL "कॉलम गिनती मान गणना से मेल नहीं खाती है" लेकिन गणना

mysql> insert ignore into S_3068 values (133, 15.82, 5542, 1339309260, 0, 1); 
ERROR 1136 (21S01): Column count doesn't match value count at row 1 

आप देख सकते हैं, स्तंभ संख्या मूल्य संख्या से मेल करता है:

mysql> desc S_3068; 
+-------------------+----------------------+------+-----+---------+-------+ 
| Field    | Type     | Null | Key | Default | Extra | 
+-------------------+----------------------+------+-----+---------+-------+ 
| SfmID    | smallint(5) unsigned | NO | PRI | 1  |  | 
| DatValue   | float    | NO |  | 0  |  | 
| DatRawValue  | int(10) unsigned  | NO |  | 0  |  | 
| DatTime   | int(10) unsigned  | NO | PRI | 0  |  | 
| DatBusOrder  | tinyint(3) unsigned | NO | PRI | 1  |  | 
| DatFormulaVersion | tinyint(3) unsigned | NO |  | 0  |  | 
+-------------------+----------------------+------+-----+---------+-------+ 
6 rows in set (0.00 sec) 

मैं ऊपर उल्लिखित त्रुटि मिलती है जब मैं इस क्वेरी निष्पादित: यहाँ तालिका की संरचना है। अब क्या और भी अधिक puzzling है कि क्वेरी SfmID साथ पूरी तरह से ठीक काम करता है = 132 है:

mysql> insert ignore into S_3068 values (132, 15.82, 5542, 1339309260, 0, 1); 
Query OK, 1 row affected (0.00 sec) 

SfmID एक अहस्ताक्षरित SMALLINT, कि मेरे लिए कोई मतलब नहीं है किया जा रहा है।

इस मामले पर किसी भी मदद की सराहना की जाएगी।

संपादित करें: त्रुटि तालिका से जुड़े ट्रिगर के कारण हुई थी। अधिक जानकारी के लिए कृपया टिप्पणियां देखें।

+2

'तालिका जांचें S_3068'? – eggyal

+0

यह सुनिश्चित नहीं है कि यह क्या करना चाहिए लेकिन यह ठीक काम करता है (स्थिति ठीक है) और फिर भी क्वेरी एक ही त्रुटि के साथ विफल हो जाती है। –

+0

यदि आप स्पष्ट रूप से कॉलम सूचीबद्ध करते हैं तो क्या होता है (मैं नहीं देख सकता कि इससे कोई फर्क क्यों पड़ता है, लेकिन यह समस्या के स्रोत को कम करने में मदद कर सकता है)? – eggyal

उत्तर

2

त्रुटि तालिका से जुड़े ट्रिगर के कारण हुई थी, मूल्य 133 के लिए किसी अन्य तालिका पर एक साइड डालने का कारण था, लेकिन मूल्य 132 के लिए नहीं। MySQL द्वारा जारी त्रुटि अन्य तालिका के बारे में थी (जो कॉलम गिनती वास्तव में गलत थी) और मुख्य तालिका के बारे में नहीं जिसमें मैं डेटा डाल रहा था।

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