2014-01-27 2 views
2

Об обновлении SQLite в Android.Когда вы меняете структуру базы данных, как мы можем обновить базу данных без удаления данных?Об обновлении SQLite в Android

+0

http://developer.android.com/reference/android/database/sqlite/SQLiteOpenHelper.html#onUpgrade(android.database.sqlite.SQLiteDatabase, int, int) –

ответ

3

Вы должны переопределить метод onUpgrade в SQLiteOpenHelper. Вы должны закодировать что-то вроде этого.

public void onUpgrade (SQLiteDatabase db,int oldVersion,int newVersion){ 
    String update = ALTER TABLE <table_name> ADD COLUMN <column_name> <column_type>; 
    db.execSQL(update); 
} 

Удаление таблицы, добавление строки, вставка/обновление/удаление данных должны быть выполнены здесь.

Alter Таблица дает вам очень ограниченные возможности при обновлении таблиц базы данных. Если вы хотите скопировать свои данные в совершенно новую структуру, вам следует подумать о создании временных таблиц, где вы можете копировать данные, создавать новую схему и затем копировать свои данные из временных таблиц в новую таблицу в этом методе обновления.

Убедитесь, что номера вашей версии DB правильно обновлены при создании DBHelper.

+1

Спасибо. С вашей помощью я решил это проблемы путем переопределения метода onCreate и метода onUpgrade. –

+1

Не забывайте, что значение целой части базы данных должно быть увеличено, чтобы onUpgrade() обнаружил изменения. –

+0

Почти забыл, спасибо –

Смежные вопросы