Для пинков Я пишу инструмент «документации схемы», который генерирует описание таблиц и отношений в базе данных. Я в настоящее время shimming его для работы с SQLite.Найти имена столбцов SQLite в пустой таблице
Мне удалось извлечь имена всех таблиц в базе данных SQLite с помощью запроса в таблице sqlite_master
. Для каждого имени таблицы, я тогда выстрелить простой
select * from <table name>
запрос, а затем использовать sqlite3_column_count()
и sqlite3_column_name()
API, чтобы собрать имена столбцов, которые я также питающие к sqlite3_table_column_metadata()
, чтобы получить дополнительную информацию. Достаточно просто, не так ли?
Проблема в том, что она работает только для таблиц, которые не пусты. То есть, API sqlite_column_*()
действительны только в том случае, если sqlite_step()
вернул SQLITE_ROW
, что не относится к пустым таблицам.
Итак, вопрос в том, как узнать имена столбцов для пустых таблиц? Или, в более общем плане, есть ли лучший способ получить этот тип информации о схеме в SQLite?
Я чувствую, что здесь есть еще одна скрытая таблица sqlite_xxx
, где-то содержащая эту информацию, но до сих пор не удалось ее найти.
Спасибо всем. Я ошибочно считал, что интерфейс PRAGMA предназначен только для клиента командной строки 'sqlite3'. –