SQLiteException нет такой таблицы, оператор создания работает для одной таблицы, но не для другой - PullRequest
0 голосов
/ 01 февраля 2020

Я получаю сообщение об ошибке, показанное ниже, и видел другие вопросы по этому вопросу, но ни одно из решений, похоже, не решило мою проблему. i

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

@Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL("PRAGMA foreign_keys=ON");
        db.execSQL("CREATE TABLE IF NOT EXISTS user (username VARCHAR PRIMARY KEY, password VARCHAR, firstName VARCHAR, surname VARCHAR, email VARCHAR)"); //Create table is not there.
        db.execSQL("CREATE TABLE IF NOT EXISTS exercise (exerciseID VARCHAR PRIMARY KEY, exerciseName VARCHAR, muscleGroup VARCHAR, equipmentType VARCHAR)");
        db.execSQL("CREATE TABLE IF NOT EXISTS workout (exerciseNameID VARCHAR,userID VARCHAR, date VARCHAR PRIMARY KEY, repRange INTEGER, weightKG INTEGER)");
//        db.execSQL("create table " + TABLE_WORKOUT + " (COL_userID VARCHAR, COL_exerciseIDFK VARCHAR,COL_date date,COL_repRange INTEGER,COL_weightKG INTEGER)");
//        FOREIGN KEY (COL_exerciseIDFK) REFERENCES " +TABLE_EXERCISE+" (exerciseID), FOREIGN KEY (COL_userID) REFERENCES " +TABLE_USER+ " (username))"

Метод вставки:

public void addWorkout(String exerciseNameID,String userID, String date, int repRange, int weightKG)
    {
        SQLiteDatabase db = this.getWritableDatabase();
        ContentValues values = new ContentValues();

        values.put(COL_exerciseIDFK, exerciseNameID);
        values.put(COL_userID, userID);
        values.put(COL_date, date);
        values.put(COL_repRange, repRange);
        values.put(COL_weightKG, weightKG);

        //inserting rows
        db.insert(TABLE_WORKOUT, null, values);

        db.close();
    }

Этот метод идентичен другому, который отлично работает.

Любые ответы приветствуются.

1 Ответ

0 голосов
/ 02 февраля 2020

@ forpas прокомментировал ответ на мою проблему, мне пришлось переустановить приложение.

Подробный метод ответа здесь: Как переустановить

...