Перед работой с таблицей мне нужно проверить, что схема таблицы полностью соответствует исполняемому коду. Я знаю, что есть команда .schema tablename
, результат которой может быть хэширован и сравнен с хэш-кодом реальной схемы. Проблема заключается в том, что хранимая схема содержит все избыточные символы, используемые при создании таблицы (повторение вкладок, пробелов, новых строк), и если я изменю количество пробелов в схеме внутри следующей версии моего кода, таблица не будет распознана.Проверка схемы таблицы SQLite
Я не хочу анализировать каждый столбец со всеми его свойствами вручную.
Я не могу просто удалить повторяющиеся пробелы путем разделения & join или regexp, потому что иногда они не повторяются, но все же чрезмерны (например, возле скобки открытия).
Это очень обычная задача - проверка схемы таблицы, но я не вижу способ эффективно ее реализовать.
UPD
Еще один возможный способ, которым я имею в виду: создание временной таблицы и сравнить это схема с целевой таблицы, используя некоторые внутренние функции SQLite. Может ли это работать?
Может ли это быть сделано программно? Если да, сначала получите список всех таблиц ('.tables') для каждого, запустите' pragma table_info (table); ' – Dan
@Dan. То, что я имел в виду под« разобрать каждый столбец со всеми его свойствами вручную ». Это возможно, но трудно – astef
@ Dan. Моя идеальная проверка - это просто сравнение двух хэшей – astef