sqlite как я могу узнать, какие имена столбцов возвращаются из ПРАГМЫ «запрос»?

#sqlite #schema #pragma

#sqlite #схема #прагма

Вопрос:

Я хочу выполнить копирование данных из одной базы данных в другую, но я хочу сделать это только для таблиц, содержащих столбец «unit_id».

Я подумал, что могу использовать PRAGMA table_info (имя_таблицы), чтобы помочь мне определить, содержит ли таблица «имя_таблицы» столбец «unit_id».

Я прочитал документацию и понял, что могу проверить столбец «имя». но без документирования, как можно узнать имена столбцов, возвращенные из использования PRAGMA?

Есть ли что-то вроде.схема «имя таблицы», которую я могу использовать в результате PRAGMA?

пример:

 PRAGMA table_info(units);
 

возвращает это:

 0|id|INTEGER|1||1
1|unit_type_id|INTEGER|1||0
2|site_id|INTEGER|1||0
3|modbus_address|INTEGER|1||0
4|Name|TEXT|1||0
5|Description|TEXT|0||0
6|Needs_Download|INTEGER|1||0
7|needed_reset_apps|INTEGER|0||0
 

но как я могу узнать, какой столбец какой ?!

Спасибо, Джим.

Ответ №1:

Как и в обычном запросе, данные, возвращаемые PRAGMA table_info, имеют имена столбцов:

 sqlite> .header on
sqlite> pragma table_info(units);
cid|name|type|notnull|dflt_value|pk
0|id|INTEGER|0||1
1|unit_id|INTEGER|0||0
2|etc.|FLUFFY BUNNIES|0||0
 

Значение столбцов задокументировано в документации.

Комментарии:

1. Thnaks 🙂 Я чувствую себя глупо. не знал, что такое «.header on». к сожалению, я тоже новичок здесь, у меня недостаточно репутации, чтобы проголосовать… будет сделано, когда я получу это, хотя 🙂