2012-03-30 19 views
9

मैं sqlite3 में किसी तालिका में मौजूदा कॉलम का डिफ़ॉल्ट मान कैसे बदलूं?sqlite3 बदलें कॉलम डिफ़ॉल्ट मान

मेरे पास notes नामक एक सारणी है जिसका नाम hidden नामक बूलियन कॉलम है। डिफ़ॉल्ट सत्य पर सेट है, मैं इसे गलत पर सेट करना चाहता हूं।

उत्तर

20

मुझे नहीं लगता कि आप पूरी तालिका को बदले बिना कर सकते हैं। fine manual से:

एसक्यूएल सुविधाएँ SQLite

पूरा ALTER तालिका समर्थन
केवल RENAME टेबल लागू नहीं है कि और ALTER तालिका आदेश के स्तंभ प्रयोग जोड़ना समर्थित हैं। अन्य प्रकार के अल्टर टेबल ऑपरेशंस जैसे ड्रोप कॉलम, अल्टर कॉलम, कंसस्ट्रेंट जोड़ें, और बहुत आगे छोड़े गए हैं।

तो SQLite में मौजूदा कॉलम को संशोधित करने का कोई तरीका नहीं है। मुझे लगता है कि आपको hidden के लिए उचित डिफ़ॉल्ट के साथ एक नई तालिका बनाना होगा, सभी डेटा कॉपी करें, मूल notes तालिका, और फिर rename the new one छोड़ दें।

SQLite उद्देश्य से कई सुविधाओं को छोड़कर दुबला रहता है।

+1

एक बिंदु इस संबंध में मदद कर सकता है। 'ड्रॉप तालिका ' चलाने से पहले सुनिश्चित करें कि आप '.dump' चलाएं और स्कीमा डंप और डेटा भी प्राप्त करें। इसके बाद आप संशोधित स्कीमा को जल्दी से बनाने और डेटा को निगलना बनाने के लिए इसका उपयोग कर सकते हैं। – codarrior

0

SQLite डेटाबेस ब्राउज़र आपको कॉलम ड्रॉप करने की अनुमति देता है, ताकि आप इसके साथ कॉलम छोड़ सकें, और उसके बाद sqlite3 कमांड लाइन टूल का उपयोग करके डिफ़ॉल्ट रूप से कॉलम को मैन्युअल रूप से जोड़ दें।

+0

दुर्भाग्यवश इसे पूरा करने के लिए यह संभवतया एक प्रकार की सारणी बनाने जैसे हुड के नीचे सभी तरह के शेंगेनियां करता है: | http://stackoverflow.com/q/805363/32453 – rogerdpack

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