Создание нескольких таблиц SQLite Android
Я создаю БД mydb в SQLite, в которой будет три таблицы tbl1, tbl2, tbl3.
Класс работы первой таблицы с БД:
public class DbHelperTbl1 extends SQLiteOpenHelper {
public DbHelperTbl1 (@Nullable Context context) {
super(context, Constants.DB_NAME, null, Constants.DB_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(Constants1.CREATE_TABLE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL(Constants1.DROP_TABLE);
onCreate(db);
}
@Override
public void onOpen(SQLiteDatabase db) {
super.onOpen(db);
db.execSQL(Constants.DB_FOREIGN_KEY_ENABLE);
}
}
Это SQL выражения:
public static final String _ID_TABLE = "_id";
public static final String FIELD_NAME = "name";
public static final String TABLE_NAME = "tbl1";
public static final String CREATE_TABLE = "CREATE TABLE IF NOT EXISTS " + TABLE_NAME +
" (" + _ID_TABLE + " INTEGER PRIMARY KEY AUTOINCREMENT," +
FIELD_NAME + " TEXT NOT NULL UNIQUE)";
public static final String DROP_TABLE = "DROP TABLE IF EXISTS " + TABLE_NAME;
Другие два полностью аналогичны, за исключением SQL выражений.
На сколько я понял, БД создается когда вызываю метод openDb класса DbManagerTbl1
public class DbManagerTbl1 implements DbManagerService {
private Context context;
private DbHelperTbl1 dbHelperTbl1;
private SQLiteDatabase db;
public DbManagerTbl1(Context context) {
this.context = context;
dbHelperTbl1 = new DbHelperTbl1(context);
}
public void openDb() {
db = dbHelperTbl1.getWritableDatabase();
}
public void closeDb(){
dbHelperTbl1.close();
}
...
}
Таким образом создается БД с таблицей tbl1, далее наполняю ее данными, все работает. Далее пытаюсь создать в этой БД следующую таблицу аналогичным образом. И получаю ошибку
SQLiteLog: (1) no such table: tbl1
В чем тут проблема? Да, этой таблицы действительно нет в базе, так я же и пытаюсь ее создать вызвав соответствующий метод openDb. С первой же таблицей такая штука сработала, почему тут ошибка?