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

अजगर में एक पांडा डेटा फ्रेम से mysql में एक कॉलम जोड़ने में सक्षम नहीं है

आप अपनी तालिका में एक चरण में डेटा के साथ एक कॉलम नहीं जोड़ सकते। पहले डीडीएल करने के लिए आपको कम से कम दो अलग-अलग कथनों का उपयोग करना चाहिए (ALTER TABLE ) और डीएमएल सेकेंड (UPDATE या INSERT ... ON DUPLICATE KEY UPDATE )।

इसका मतलब है कि एक NOT NULL के साथ एक कॉलम जोड़ना है बाधा के लिए तीन चरणों की आवश्यकता होती है:

  1. अशक्त स्तंभ जोड़ें
  2. प्रत्येक पंक्ति में मानों के साथ कॉलम भरें
  3. जोड़ें NOT NULL स्तंभ के लिए बाधा

वैकल्पिक रूप से, "डमी" डिफ़ॉल्ट मान का उपयोग करके, आप इसे दो चरणों में कर सकते हैं (बस सावधान रहें कि किसी भी "डमी" मान को इधर-उधर न छोड़ें, या उन मानों का उपयोग न करें जो सार्थक/अच्छी तरह से प्रलेखित हैं):

  1. कॉलम को NOT NULL DEFAULT '' . के रूप में जोड़ें (या उदाहरण का उपयोग करें 0 संख्यात्मक प्रकारों के लिए)
  2. प्रत्येक पंक्ति में मानों के साथ कॉलम भरें

DEFAULT . को हटाने के लिए आप वैकल्पिक रूप से तालिका को फिर से बदल सकते हैं मूल्य। निजी तौर पर, मैं पहली विधि पसंद करता हूं क्योंकि यह आपकी तालिका में अर्थहीन मूल्यों को पेश नहीं करता है और दूसरे चरण में कोई समस्या होने पर त्रुटि होने की अधिक संभावना है। मैं शायद दूसरी विधि के साथ जाएं जब एक कॉलम एक निश्चित प्राकृतिक DEFAULT के लिए खुद को उधार देता है value और मैं इसे अंतिम तालिका परिभाषा में रखने की योजना बना रहा हूं।

साथ ही, आप अपनी क्वेरी को सही ढंग से पैरामीटराइज़ नहीं कर रहे हैं; आपको पैरामीटर मानों को विधि में पास करना चाहिए विधि कॉल के अंदर स्ट्रिंग तर्क को स्वरूपित करने के बजाय। दूसरे शब्दों में:

cursor.execute("Query with %s, %s, ...", iterable_with_values)  # Do this!
cursor.execute("Query with %s, %s, ..." % iterable_with_values)  # NOT this!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. सबक्वेरी के साथ मैसकल डिलीट

  2. स्ट्रिंग्स के लिए सबटोटल और टोटल

  3. विंडोज 7 पीएचपी MySQL कनेक्शन मुद्दे

  4. सीमांकित फ़ाइल से mysql तालिका में डेटा लोड करते समय त्रुटि रेखाएँ छोड़ें

  5. MySQL2 रूबी मणि 10.6 स्थापित नहीं करेगा