Подтвердить что ты не робот

Отбросить существующую таблицу в SQLite, если оператор IF EXISTS не поддерживается

Моя версия SQLite не поддерживает оператор IF EXISTS. Как я могу удалить таблицу, которая может существовать или не существовать, не получив ошибку на мне?

Я не могу обновить версию в прямом приложении прямо сейчас, поэтому я не могу использовать версию SQLite, которая поддерживает IF EXISTS.

4b9b3361

Ответ 1

Официальная документация говорит, что следует использовать IF EXISTS, поэтому я подозреваю, что ваш лучший план - обновить.

Если вы не можете, вам нужно выяснить, можете ли вы выполнить некоторую тривиальную операцию в таблице, которая будет успешной, будет ли эта таблица пустой; если это удастся, вы должны удалить таблицу, если она не удалась, таблица уже исчезла. Примером такого рода операций может быть:

SELECT COUNT(*) FROM theTable;

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

Ответ 2

Вы можете использовать:

DROP TABLE IF EXISTS TABLE_NAME;

Ответ 3

Просто используйте это.

DROP TABLE TABLE_NAME;

Ответ 4

Вы можете каким-то образом использовать таблицу метаданных в своем запросе, чтобы узнать, существует ли таблица:

SELECT count(*) > 0 FROM sqlite_master where tbl_name = "<table_name>" and type="table"