SQLiteDatabase DROP TABLE, ЕСЛИ СУЩЕСТВУЕТ, не работает - PullRequest
0 голосов
/ 21 ноября 2018

Ситуация
Мне нужно удалить все записи определенной таблицы в базе данных, поэтому я решил, что просто уроню ее.

DROP TABLE IF EXISTS LogEntry

Я попытался запустить sql, используяSQLiteDatabase#execSql(String) и SQLiteDatabase#rawQuery(String, String[]).Я запускаю транзакцию перед ее выполнением и завершаю ее после выполнения, используя SQLiteDatabase#beginTransaction() и SQLiteDatabase#endTransaction().

Задача
В обоих случаях SQL выполняется без выдачи исключения, крометаблица еще существует.Я выполнил инструкцию SELECT сразу после отбрасывания, чтобы посмотреть, сработало ли оно и дало ли оно те же результаты, что и до отбрасывания.

1 Ответ

0 голосов
/ 21 ноября 2018

Полагаю, предположим, что # * . , причина в том, что вы пропустили setTransactionSuccessful , без этого endTransaction произойдет откат (отменитьвсе сделано в транзакции).

Согласно: -

Транзакции могут быть вложенными.Когда внешняя транзакция будет завершена, вся работа, выполненная в этой транзакции, и все вложенные транзакции будут зафиксированы или откатаны. Изменения будут отменены, если какая-либо транзакция будет завершена без пометки как очищенной (путем вызова setTransactionSuccessful) .В противном случае они будут совершены.

beginTransaction

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