Join the social network of Tech Nerds, increase skill rank, get work, manage projects...
 
  • How to add new Columns to table without loosing data of the older version

    • 0
    • 1
    • 0
    • 0
    • 1
    • 0
    • 0
    • 0
    • 527
    Comment on it

    I am writing this blog to add columns in our database table which would compatible with old version of database.
    Here I use Alter Table command on my onUpgrade() method where I make condition for the database version.

    We can add only one column at a time so we break it into multiple ALTER TABLE command.


    public static final int DATABASE_VERSION = 2;
    public static final String DATABASE_NAME = "Reader.db";
    private static final String TIMESTAMP = " TIMESTAMP";
    private static final String COMMA_SEP = ",";
    
    private static final String SQL_CREATE_QUERY =
            "CREATE TABLE IF NOT EXISTS table (" +
                    "id" + " INTEGER PRIMARY KEY" + COMMA_SEP +
                    "image1" + " TEXT_TYPE " + COMMA_SEP +
                    "image2" + " TEXT_TYPE " + COMMA_SEP +
                    "image3" + " TEXT_TYPE " + COMMA_SEP +
                    "name" + " TEXT_TYPE " + COMMA_SEP +
                    "isuploaded" + " INTEGER" + COMMA_SEP +
                    "createdate" + " TEXT_TYPE" +
    
                    ")";
    
    
    public void onCreate(SQLiteDatabase db) {
    
    
        db.execSQL(SQL_CREATE_QUERY);
    
    
    }
    
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        // This database is only a cache for online data, so its upgrade policy is
        // to simply to discard the data and start over
        try {
    
            if (oldVersion < 2) {
    
                db.execSQL("ALTER TABLE table ADD  image2 TEXT ");
                db.execSQL("ALTER TABLE table ADD  image3 TEXT ");
                db.execSQL("ALTER TABLE table ADD  name TEXT ");
                saveDATA();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        db.execSQL(SQL_DELETE_ENTRIES);
        onCreate(db);
    }
    

 1 Comment(s)

Sign In
                           OR                           
                           OR                           
Register

Sign up using

                           OR                           
Forgot Password
Fill out the form below and instructions to reset your password will be emailed to you:
Reset Password
Fill out the form below and reset your password: