sql - чего - семь баз за семь недель pdf




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

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

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

SELECT COUNT(*) FROM theTable;

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

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

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


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

DROP TABLE IF EXISTS TABLE_NAME;

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

DROP TABLE TABLE_NAME;




sqlite3