我在 onCreate
事件中创建了我的数据库,其中我有很多表,但我需要再添加 1 个表,而且我不能丢失任何数据,所以我需要使用事件onUpgrade
,所以我希望你们能帮助我,因为我不知道如何使用它。
示例:
public void onCreate(SQLiteDatabase db) {
sql = "CREATE TABLE IF NOT EXISTS funcionarios"
+"(codigo INTEGER PRIMARY KEY, funcionario TEXT, apelido TEXT , functionTEXT, cartao TEXT , foto TEXT , tipo_foto TEXT);";
db.execSQL(sql);
}
我需要的是
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
if(oldVersion < 2){
db.execSQL("CREATE TABLE IF NOT EXISTS calibrar_aceleracao"+
"(limiteMaximo INTEGER, limiteMinimo INTEGER);");
}
}
但它不起作用。
谢谢。
最佳答案
您不需要需要更改您的应用程序版本来更新您的数据库 - 并不是说它不正确,但有一种更有效的方法可以做到这一点。那就是通过使用你的助手的 super 构造函数,它看起来像下面这样:
public class MyDatabaseHelper extends SQLiteOpenHelper {
public MyDatabaseHelper(Context context) {
super(context, "My.db", null, 1 /* This is the version of the database*/);
}
@Override
public void onCreate(SQLiteDatabase database) {
sql = "CREATE TABLE IF NOT EXISTS funcionarios (codigo INTEGER PRIMARY KEY, funcionario TEXT, apelido TEXT , functionTEXT, cartao TEXT , foto TEXT , tipo_foto TEXT);";
db.execSQL(sql);
}
@Override
public void onUpgrade(SQLiteDatabase database, int oldVersion, int newVersion) {
if(oldVersion < 2){
db.execSQL("CREATE TABLE IF NOT EXISTS calibrar_aceleracao (limiteMaximo INTEGER, limiteMinimo INTEGER);");
}
}
}
关于java - 未调用 Android SQLite onUpgrade,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24757983/