как проверить в sqlite3, изменилось ли количество столбцов или нет - PullRequest
0 голосов
/ 01 декабря 2011

IAM кодирование в c и использование sqlite3 в качестве базы данных. Я хочу спросить, как мы можем проверить, нет ли.столбцы в таблице изменились или нет.Ситуация такова, что я собираюсь запустить приложение с новым исполняемым файлом, в соответствии с которым новые столбцы будут добавлены в таблицу. Поэтому, когда БД будет создана снова, приложение должно проверить, является ли схема таблицы такой же или нет, и в соответствии сНовая схема должна создать таблицу. Я разрабатываю приложение для встроенной среды (специально для устройства).

При изменении числа столбцов таблицы в db и запуске нового исполняемого файла в устройстве новые таблицы не получаютсоздан из-за наличия старых таблиц, но когда я удаляю старую базу данных и создаю свежие таблицы, происходят изменения. Так как справиться с этой ситуацией?

Платформа: Linux, компилятор gcc Заранее спасибо

Просьба направить меня следующим образом: (при условии, что Старая БД уже присутствует)

Для начала мы должны проверить схему Старой БД и нет ли каких-либо изменений в некоторых таблицах (например, в некоторых новых столбцах).добавлен или удален), затем создайте новое соглашение с БДк этому.

1 Ответ

1 голос
/ 01 декабря 2011

Использование версий и явных ссылок на столбцы

Вы можете использовать управление версиями базы данных, чтобы помочь в решении подобных проблем.

  1. Создать отдельную таблицу только с однойстолбец и одна запись для хранения версии базы данных.

  2. При каждом обновлении базы данных указывайте номер версии в отдельной таблице.

  3. ДизайнВаша вставка запрашивает указание столбцов.

  4. Определите значения по умолчанию для новых столбцов, чтобы старые программы вставляли значения по умолчанию.

Примеры

UPDATE databaseVersion SET version=2;

Запрос версии 1

INSERT INTO MyTable (id, var1, var2) VALUES (2, '5', '6');

Запрос версии 2

INSERT INTO MyTable (id, var1, var2, var3) VALUES (3, '5', '6', '7');

Таким образом, ваши запросы должны быть совместимы с новой БД при использовании старой программы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...