तालिका ALTER
उपयोग करने के लिए आप की जरूरत के लिए एक नया स्तंभ जोड़ने के लिए। एंड्रॉइड में आप onUpgrade()
के अंदर नया कॉलम जोड़ सकते हैं।
आप सोच सकते हैं कि कैसे onUpgrade()
नया कॉलम जोड़ देगा?
जब आप SQLiteOpenHelper
के उप-वर्ग को कार्यान्वित करते हैं, तो आपको अपने क्लास कन्स्ट्रक्टर में सुपरक्लास कन्स्ट्रक्टर: super(context, DB_NAME, null, 1);
पर कॉल करने की आवश्यकता होती है। वहां मैंने संस्करण के लिए 1
पारित किया है।
जब मैंने उपरोक्त 1
संस्करण (2
या इससे अधिक) को बदल दिया, onUpgrade()
लागू किया जाएगा। और एसक्यूएल संशोधनों को निष्पादित करें जो मैं करना चाहता हूं। मेरी कक्षा निर्माता के बाद संस्करण बदल दिया है: इस तरह
public DatabaseHelper(Context context) {
super(context, DB_NAME, null, 2);//version changed from 1 to 2
}
एसक्यूएल संशोधनों चेक, सुपर क्लास निर्माता संस्करण है कि मैं super()
के लिए पारित के साथ संग्रहीत SQLite db फ़ाइल का संस्करण है। यदि ये (पिछले और अब) संस्करण संख्या अलग हैं onUpgrade()
आवेदक हो जाता है।
कोड इस तरह दिखना चाहिए:
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// add new columns to migrate to version 2
if (oldVersion < 2) {
db.execSQL("ALTER TABLE " + TABLE_NAME + "ADD COLUMN school VARCHAR(250)");
}
// add new columns to migrate to version 3
if (oldVersion < 3) {
db.execSQL("ALTER TABLE " + TABLE_NAME + "ADD COLUMN age INTEGER");
}
}
हाय! मैंने कोशिश की है कि मैंने विधि को अपग्रेड करने के लिए उपयोग किया है और अंदर मैंने तालिका तालिका को भी बदल दिया है। लेकिन फिर भी मैं डेटाबेस में नया कॉलम जोड़ने में सक्षम नहीं हूं .. लेकिन जब मैं नया कॉलम जोड़ने और नाम बदलने के लिए एक प्रश्न लिखता हूं डेटाबेस और टेबल नाम दोनों से मैं नया कॉलम जोड़ने में सक्षम हूं..लेकिन तालिका तालिका बदलने में मदद के साथ मैं ऐसा करने में सक्षम नहीं हूं .. डेटाबेस डेटाबेस और तालिका वांछित कार्य नहीं है .. इसे बदलने के साथ काम करना चाहिए टेबल .. जब तक मैं इसे तालिका तालिका में बदलने में सक्षम नहीं हूं .. – Aamirkhan
0,1,2,3, .......... – NagarjunaReddy
@NagarjunaReddy जैसे मूल्य को बढ़ाने के लिए देर से उत्तर देने के लिए खेद है। आप इस विधि का उपयोग db.execSQL ("अद्यतन तालिका सेट कुंजी = कुंजी + 1 कहां नाम =?", नया स्ट्रिंग [] {name}) का उपयोग कर सकते हैं; – DevYudh