sqlite3 alter команда удалить мой БД - PullRequest
0 голосов
/ 08 марта 2011

В начале моего приложения я запускаю команду sqlite3 на существующей базе данных sqlite3.Команда выглядит так:

    sqlStmt = "ALTER TABLE projects ADD COLUMN guid integer DEFAULT 0";
if (sqlite3_prepare_v2(db, sqlStmt, -1, &compiledStmt, NULL) == SQLITE_OK){
    sqlite3_step(compiledStmt);
}

, что происходит, когда все мои данные теряются, и отображается файл журнала (и никогда не удаляется).Я не знаю, что делать - я понимаю, что это как-то связано с транзакциями и блокировками.Пожалуйста, помогите.

1 Ответ

0 голосов
/ 08 марта 2011

Это нормальное поведение, поскольку Sqlite не поддерживает сложные операции. Пожалуйста, см. Документацию.

Итак, все, что вам нужно сделать, это:

  1. Создать временную таблицу.
  2. Поместите все данные в него.
  3. Удалить исходную таблицу.
  4. Создать таблицу с новым полем.
  5. Отправка данных из временной таблицы в новую таблицу

Если вам нужна дополнительная помощь, сообщите нам структуру вашего стола.

...