关于Android中SQLite的更新。当您更改数据库的结构时,如何在不删除数据的情况下更新数据库?
答案 0 :(得分:3)
您应该覆盖SQLiteOpenHelper中的onUpgrade方法。你应该编写这样的代码。
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表为您提供了对数据库表执行更新的非常有限的选项。如果要将数据复制到全新的结构中,则应考虑创建临时表,在此表中可以复制数据,创建新模式,然后在此升级方法中将数据从临时表复制到新表。 / p>
确保在创建DBHelper时正确更新了数据库版本号。