Ошибка SQLite 1 Нет столбца Ошибка вставки SQLite - PullRequest
1 голос
/ 13 января 2012

Я пытаюсь создать базу данных SQLite в своем приложении, экспортируя ее на SD-карту. Я получаю ошибку

01-13 12: 31: 39.621: I / база данных (3828): sqlite вернул: код ошибки = 1, msg = в таблице инвентаризации нет столбца с именем location

Ошибка вставки SQLite

Вот мой код для создания базы данных ... Кажется, я не могу найти проблему.

@Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL("CREATE TABLE inventory ("
                + "_id   INTEGER PRIMARY KEY," + "serialnum TEXT,"
                + "modelnum TEXT," + "manufact TEXT," + "description TEXT,"
                + "time DATETIME" + ");");
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        if (oldVersion < 2) {
            Log.d("SW","Upgrading database from version " + oldVersion + " to " + newVersion);
            db.execSQL("ALTER TABLE inventory ADD location TEXT");
        }
        if (oldVersion < 3) {
            Log.d("SW","Upgrading database from version " + oldVersion + " to " + newVersion);
            db.execSQL("ALTER TABLE inventory ADD other TEXT");
        }

    }

Ответы [ 3 ]

0 голосов
/ 13 января 2012

Попробуйте изменить первую команду SQL на:

    db.execSQL("CREATE TABLE inventory ("
            + "_id   INTEGER PRIMARY KEY," + "serialnum TEXT,"
            + "modelnum TEXT," + "manufact TEXT," + "description TEXT,"
            + "time DATETIME," + "location TEXT" + ");");

- в операторе создания таблицы не было столбца местоположения.

0 голосов
/ 13 января 2012

Правильный синтаксис для добавления нового столбца:

ALTER TABLE test1 ДОБАВИТЬ КОЛОННУ foo;

Попробуйте это:

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    if (oldVersion < 2) {
        Log.d("SW","Upgrading database from version " + oldVersion + " to " + newVersion);
        db.execSQL("ALTER TABLE inventory ADD COLUMN location TEXT");
    }
    if (oldVersion < 3) {
        Log.d("SW","Upgrading database from version " + oldVersion + " to " + newVersion);
        db.execSQL("ALTER TABLE inventory ADD COLUMN other TEXT");
    }

}
0 голосов
/ 13 января 2012

Попробуйте

ALTER TABLE inventory ADD COLUMN location TEXT
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...