我正在为我的应用程序的SQLite数据库添加一个表格。所有语法都没问题,但是我在正确创建新表时遇到了一些麻烦。我已经添加了新的表格...
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(DATABASE_CREATE);
db.execSQL(CREATE_REQUESTS);
db.execSQL(CREATE_OVERRIDE);
}
这是我的 onCreate 方法。我有3个表。当我更新版本号时,出现了一个错误,说“表 requests(指 CREATE_REQUESTS)已经被创建了”。我看了一下我的 onUpgrade 方法...
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS contacts");
onCreate(db);
}
我了解到,在onCreate方法中引用我的DATABASE_CREATE表的行db.execSQL("DROP TABLE IF EXISTS contacts")
用于删除旧表,然后下一行onCreate(db);
重新创建它。 我没有在execSQL行中添加请求,这就是导致错误的原因。问题在于:我不想失去已有的两个表中的数据。是否有一种方法可以像我尝试做的那样添加表格,而不会丢失所有旧数据?谢谢。