2014-11-04 6 views
7

मैं MySQL में एक क्वेरी चला रहा हूं जहां मैं चार स्तंभों से समूह कर रहा हूं और कई मूल्यों का चयन कर रहा हूं, जिसमें चार मूल्य शामिल हैं जिन्हें मैं समूहीकृत कर रहा हूं।कुंजी 'group_key' के लिए डुप्लिकेट प्रविष्टि

Duplicate entry '92-0-10-7' for key 'group_key' 

92, 0, 10, और देखते हैं 7 चार वर्गीकृत किया-से कॉलम किसी विशेष पंक्ति (वास्तव में के लिए, मैं जाँच की के सभी मानों हैं, और: जब मैं क्वेरी चलाने लेकिन मैं इस त्रुटि मिलती है उन पंक्तियों में फिट 63 पंक्तियां)। लेकिन मुझे नहीं पता कि इसका क्या अर्थ है, या मेरी क्वेरी को सही तरीके से कैसे चलाया जाए।

मेरे प्रश्न:

Create table table2 as 
Select round(x, 0) as x, round(a, 0) as a, round(b, 0) as b, c, d, e, f 
from table1 
group by round(x, 0), round(a, 0), round(b, 0), c 

92 एक्स फिट, 0, 10 बी, और 7 सी।

मेरे पास इस तालिका पर कोई सूचकांक नहीं है।

धन्यवाद!

+0

आपकी क्वेरी 'है SELECT' जबकि कि त्रुटि संदेश केवल DML से हो सकता है (' UPDATE' या 'INSERT')। तो, त्रुटि संदेश किसी अन्य क्वेरी के कारण होता है। – zerkms

+0

आपका दूसरा मतलब क्या है? मैं केवल यह प्रश्न चला रहा हूं और यह अभी भी मुझे वह संदेश देता है। इसके अलावा, FWIW, वास्तविक क्वेरी एक तालिका तालिका कमांड है, लेकिन केवल अंतर यह है कि चयन के सामने "तालिका तालिका 2 बनाएं" है। – japem

+0

@zerkms मैंने तालिका तालिका के बिना एक ही क्वेरी चलाने का प्रयास किया और कुछ भी नहीं बदला, इसलिए मुझे वास्तव में यह महत्वपूर्ण नहीं लगता है। – japem

उत्तर

8

आपकी समस्या एक MySQL बग की तरह दिखती है। मैं दूसरे दिन हमारे उत्पादन सर्वर के लिए लॉग की समीक्षा कर रहा था और त्रुटि लॉग इस त्रुटि से भरे हुए थे। मैंने नीचे कामकाज का उपयोग किया और त्रुटियां चली गईं।

सेट सत्र max_heap_table_size = 536870912;

सेट सत्र tmp_table_size = 536870912;

स्रोत: http://bugs.mysql.com/bug.php?id=58081

+0

मेरे लिए काम किया। धन्यवाद – bloub

+0

मेरे लिए भी काम किया। MySQL 5.6.33। इन सेटिंग्स को my.cnf में जोड़ा गया। – cronfy

+0

मैं वास्तव में यहां मेरी तालिका संरचना का वर्णन नहीं कर सकता, लेकिन 5.6.35 का उपयोग करके और यह मेरी त्रुटि को ठीक नहीं करता – chiliNUT

0

यह आमतौर पर डिस्क स्थान मुद्दा है। विशेष रूप से अस्थायी स्थान (लिनक्स /tmp में)। आपको डेटाबेस सर्वर डिस्क स्पेस की जांच करें।

0

आप समूह में उपनाम रखना चाहिए इस तरह खरीद:

Create table table2 as 
Select round(x, 0) as x, round(a, 0) as a, round(b, 0) as b, c, d, e, f 
from table1 
group by x, a, b, c; 
संबंधित मुद्दे

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