2014-12-05 5 views
5

मैं mysql डेटाबेस में दो कॉलम के साथ एक टेबल 'टेस्ट' बना देता हूं: (आयु int, नाम टेक्स्ट)।पाइथन के साथ माईस्कल ऑटोइनक्रिएशन आईडी के साथ रिकॉर्ड सम्मिलित नहीं कर सकता है, क्यों?

तो मैं एक रिकॉर्ड (एक सूची के साथ) निम्नलिखित कोड का उपयोग कर सम्मिलित करें:

record = [12, 'Tom'] 
cursor.execute("insert into test values(%s,%s)", record) 

ऊपर कोड mysql में काम करते हैं (मैं प्रोग्रामिंग के लिए अजगर 2.7 का उपयोग करें)।

मैं तो पुराने तालिका को हटाने और नई तालिका के लिए एक AUTO_INCREMENT P_id क्षेत्र को जोड़ने के लिए, CREATE TABLE एसक्यूएल के लिए निम्न कोड जोड़कर हैं:

P_id int(11) PRIMARY KEY AUTO_INCREMENT, 

और नई तालिका काम करता है और मैं इसे खोजने mysql में। हालांकि, जब मैं एक ही कोड का उपयोग कर एक नया रिकॉर्ड डालने के लिए प्रयास करें:

record = [12, 'Tom'] 
cursor.execute("insert into test values(%s,%s)", record) 

लेकिन यह काम नहीं करता है और रिपोर्ट:

OperationalError: (1136, "Column count doesn't match value count at row 1") 

ऐसा लगता है कि मैं द्वारा P_id का मूल्य जोड़ना चाहिए लग रहा है खुद? लेकिन क्या इसे स्वचालित रूप से बढ़ाना चाहिए और मैं इसे छोड़ सकता हूं? मैं mysql में काफी नौसिखिया हूं और कृपया विवरण के साथ मदद करें।

यह स्टैक ओवरफ्लो में मेरा पहला समय प्रश्न है और किसी भी मदद के लिए धन्यवाद।

उत्तर

5

इस क्वेरी का उपयोग करें:

insert into test (age,name) values(%s,%s) 

आपका कोड दिखेगा की तरह:

record = [12, 'Tom'] 
cursor.execute("insert into test (age,name) values(%s,%s)", record) 
+0

आपका जवाब तो समय पर और महान है। –

+0

यह काफी अच्छी तरह से काम करता है। बहुत बहुत धन्यवाद। अब मुझे एहसास है कि डिफ़ॉल्ट सेटिंग सभी फ़ील्ड को अपडेट करना है। Stackoverflow में पहला अनुभव इतना अच्छा है। :) –

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