android 数据库升级(保留原先数据)

在onUpgrade()中处理

 db.execSQL("CREATE TABLE " + "'post2' (" + //post2 为暂存文件名,可以在这里添加字段或者删除字段 "'_id' INTEGER PRIMARY KEY ," + "'SONG_ID' INTEGER UNIQUE ," + "'SONG_NAME' TEXT," + "'LISTEN_FILE' TEXT," + "'ARTIST_NAME' TEXT," + "'HAS_PLAYED' INTEGER ," + "'ARTIST_URL' TEXT," + "'IS_SLOW_TYPE' INTEGER," + "'SONG_TIME' INTEGER ," + "'IS_MUSIC_POWER' INTEGER ," + "'HAS_COLLECTED' INTEGER);"); 

            //将原先LOADED_SONG 表中中的响应字段的数据copy到post2表中
            db.execSQL("INSERT INTO post2 (_id, SONG_ID, SONG_NAME, LISTEN_FILE, ARTIST_NAME, HAS_PLAYED, ARTIST_URL,IS_SLOW_TYPE, SONG_TIME, IS_MUSIC_POWER,HAS_COLLECTED)" + " SELECT _id, SONG_ID, SONG_NAME, LISTEN_FILE, ARTIST_NAME,HAS_PLAYED, ARTIST_URL, IS_SLOW_TYPE, SONG_TIME, IS_MUSIC_POWER ,HAS_COLLECTED FROM LOADED_SONG;");
            //删除原先的表
            db.execSQL("DROP TABLE LOADED_SONG"); //重命名表 db.execSQL("ALTER TABLE post2 RENAME TO LOADED_SONG"); //也可以在新表中添加字段 db.execSQL("ALTER TABLE LOADED_SONG ADD COLUMN USERNAME TEXT");

你可能感兴趣的:(android,数据库)