Я задавался вопросом, существует ли хорошее, ЕСЛИ НЕ СУЩЕСТВУЕТ для проверки столбцов и индексов в SQLite, или я должен возвратить всю схему базы данных и проверить против этого?
Да, в sqlite поддерживается следующий синтаксис: СОЗДАТЬ ИНДЕКС, ЕСЛИ НЕ СУЩЕСТВУЕТ ...
Чтобы проверить наличие столбец, вы можете просто попробовать сделать что-то вроде SELECT col from TABLE
. Если он не возвращает ошибку, ваша таблица содержит столбец
.
есть таблица системного каталога с именем sqlite_master ], который можно использовать для проверки имен индексов (или других):
SELECT name FROM sqlite_master WHERE type='index' ORDER BY name;
Вы можете использовать прагму , чтобы получить индексированные столбцы:
PRAGMA index_info(index-name);
И этот, чтобы получить имена столбцов для таблицы:
PRAGMA table_info(table-name);