2011-11-20 18 views
5

क्या एंड्रॉइड में पहले से बनाए गए डेटाबेस का नाम बदलना संभव है?एंड्रॉइड का नाम बदलें SQLite डेटाबेस

मेरी क्षुधा अद्यतन पर मैं पुराने डेटाबेस का नाम बदलने के लिए और एक नया तो कुछ मूल्यों की तुलना और अंत में वर्ष हटाना स्थापित करना चाहते हैं।

मैं संपत्ति फ़ोल्डर में एक SQLite फ़ाइल से निर्माण कर रहा हूँ। यही कारण है कि मैं सभी तालिकाओं का नाम बदल नहीं सकता और नए डालने का प्रयास नहीं कर सकता।

स्पष्टीकरण:

पुराने डेटाबेस केवल एक मेज है कि मैं नए (अद्यतन) से डेटाबेस के खिलाफ से मूल्यों की तुलना करने की जरूरत है शामिल होंगे।

दोनों डेटाबेस संपत्ति फ़ोल्डर में एक SQLite फ़ाइल से कॉपी किया गया है।

एक बार मैं नए पुराने डेटाबेस से एक मान तुलना मैं पुराने हटा सकते हैं और मूल्यों मैं तुलना के साथ उसके स्थान पर नया प्रयोग करेंगे।

मैं क्या कर के बारे में सोच रहा था नाम बदलने वर्ष उसके स्थान पर नया बना सकते हैं और इसके बाद के संस्करण सब कुछ करना था।

+0

तुम क्यों कर रहे हैं ऐप अपडेट के समय डेटाबेस को प्रत्यक्ष अपडेट करने के बारे में क्या अधिक जानकारी है? – user370305

उत्तर

3

प्रभु फ्लैश सही, तो आप पुराने डाटाबेस हटा सकते हैं और नया एक कॉपी चाहिए ...

आप एक SQLiteOpenHelper का उपयोग मान लिया जाये, तो आप getReadableDatabase() में एक createDatabaseIfRequired(); विधि इस्तेमाल कर सकते हैं और getWritableDatabase()

private boolean checkOldDatabase() { 
    Log.d(Constants.LOGTAG, "OperationDbHelper.checkDatabase"); 
    File f = new File(DB_PATH + OLD_DB_NAME); 
    return f.exists(); 
} 

public void createDatabaseIfRequired() throws IOException, SQLiteException { 
    if (!checkOldDatabase()) { 
     // do db comparison/delete old db/copy new db 
    } 
} 
0

सीधे एक एसक्यूएल तालिका का नाम बदलना संभव नहीं है।

लेकिन आप इसे एक नया बनाने और पुराने को हटाने कॉपी कर सकते हैं।

+0

आह जो सही लगता है आप संभवतः एक साधारण नमूना या उपयोगी कुछ लिंक प्रदान कर सकते हैं। मेरे सिर को पाने के लिए मुझे एकमात्र अन्य चीज़ यह है कि मैं कुछ तुलना करने के लिए एक बार में दो डेटाबेस से कैसे जुड़ूँगा। – Somk

7

बस फ़ाइल का नाम बदलें। सुनिश्चित करें कि डेटाबेस पहले बंद है!

अपनी गतिविधि कक्षा में इस कॉल:

private void renameDatabase() 
{ 
    File databaseFile = getDatabasePath("yourdb.whatever"); 
    File oldDatabaseFile = new File(databaseFile.getParentFile(), "yourdb_old.whatever"); 

    databaseFile.renameTo(oldDatabaseFile); 
} 

स्पष्टीकरण के जवाब। पुराने डीबी (ऊपर के रूप में) का नाम बदलें, संपत्ति फ़ोल्डर से नया कॉपी करें, दोनों डेटाबेस खोलें और अपनी तुलना करें। फिर पुरानी फाइल को हटा दें।

+0

मैं फ़ाइल का नाम क्यों बदलूंगा? मैं फ़ाइल से डेटाबेस लिख रहा हूँ। एक बार लिखा है कि इसे कभी भी इस्तेमाल नहीं किया जाता है। – Somk

+1

अपने प्रश्न से: "क्या एंड्रॉइड में पहले से बनाए गए डेटाबेस का नाम बदलना संभव है?" इसका मतलब है कि फ़ाइल का नाम बदलना, अनिवार्य रूप से। यह वास्तव में क्या करने की कोशिश कर रहे हैं? –

+0

फिर से, "... मैं पुराने डेटाबेस का नाम बदलना चाहता हूं और एक नया स्थापित करना चाहता हूं ..."। अभी भी उलझन में। वह एक फाइल का नाम बदल रहा है। क्या आप एक नया टेबल कॉपी करने की कोशिश कर रहे हैं? अलग सवाल –

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