#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». к сожалению, я тоже новичок здесь, у меня недостаточно репутации, чтобы проголосовать… будет сделано, когда я получу это, хотя 🙂