SQLite3, «ALTER TABLE» и долговечность - PullRequest
1 голос
/ 21 марта 2010

Я бы хотел выполнить несколько ALTER TABLE операторов в базе данных sqlite3.Что происходит, если пользователь завершает процесс или отключается питание во время работы ALTER TABLE?Будет ли база данных находиться в поврежденном промежуточном состоянии?

1 Ответ

2 голосов
/ 21 марта 2010

Со страницы транзакции в документации:

Все изменения в пределах одного транзакция в SQLite либо происходит полностью или не совсем, даже если акт написания изменений в диск прерван

* a program crash,
* an operating system crash, or
* a power failure.

А с еще одна страница в документации :

Любая команда, которая изменяет базу данных (в основном, любая команда SQL, кроме SELECT) автоматически запустит транзакция, если вы еще не в эффект. Автоматически запускается транзакции совершаются, когда последний запрос заканчивается.

Объедините их, и ответ - нет. Ваша база данных не будет повреждена при сбое питания.

...